0

この簡略版に似たテーブルがあります。

<table>
    <thead>
        <tr><th></th>
            <th>1st sg.</th><th>2nd</th><th>3rd...</th>
        </tr>
    </thead>
    <tbody>
        <tr><th>Present</th>
            <td>sum</td><td>es</td><td>est...</td>
        </tr>
        <tr><th>Perfect</th>
            <td>fui</td><td>fuisti</td><td>fuit...</td>
        </tr>
    </tbody>
</table>

そして、それらはかなり広くなります。つまり、セマンティック UI スタイルdisplay: blockである thead を除いて、すべてのテーブル要素です。display:none

これはそのままでかなりうまく機能します。しかし、私はまだのコンテンツがまだ目立つようにしthsたいと思います.thead

このJsFiddleで開始されていることがわかるように、 jQuery を使用してcolorという属性を動的に追加することを考えています。data-col

動的に作成されたコードは、次のようになります。

<tbody>
    <tr>
        <th>Present</th>
        <td data-col="1st sg.">sum</td>
        <td data-col="2nd">es</td>
        <td data-col="3rd">est</td>
    </tr>
</tbody>

したがって、私の技術的な質問は次のとおりです。

スレッドの th 要素からコンテンツを動的に取得し、そのコンテンツを同じ列のすべての tds に属性として配布するにはどうすればよいですか?

他のソリューションも高く評価されています!

4

1 に答える 1

1

ここにJavaScript関数があります。これが役立つかどうかを確認してください

    function td_col()
    {
        var table = $('table');
        table.find('tbody tr').each(function(){
            $(this).find('td').each(function(i){ 
               $(this).attr('data-col', table.find('thead tr th:eq('+(i + 1)+')').html());
            })
        })
    }

CSS の更新:

        @media(max-width:470px) {
        td:before {
            float:right;
            content:attr(data-col); //Removed the brackets.
        }
    }

フィドル

于 2014-09-12T07:27:49.237 に答える