0

私のページのhtmlにテーブルがあります:

<table id="myTab">
    <tr>
        <td class="reference">1</td>
        <td>item1</td>
        <td>Info item - 1</td>
    </tr>
    <tr>
        <td class="reference">2</td>
        <td>item2</td>
        <td>Info item - 2</td>
    </tr>
    <tr>
        <td class="reference">3</td>
        <td>item3</td>
        <td>Info item - 3</td>
    </tr>
    <tr>
        <td class="reference">4</td>
        <td>item4</td>
        <td>Info item - 4</td>
    </tr>
<table>

クラス参照innerHtmlvalue= 3でテーブルの要素を選択するにはどうすればよいですか?

var el = $(myTab).find('???')
4

3 に答える 3

9

その要素だけへの参照が必要であり、表示したマークアップが現在の構造の範囲であると仮定すると、セレクターtdを使用できます。:contains

var elem = $(".reference:contains('3')");

文字を含む他のtd要素3(例: 13) がある場合、それらも一致します。その場合は、次の.filter()方法を使用することをお勧めします。

var elem = $(".reference").filter(function () {
    return $(this).text() === "3";
});
于 2012-11-26T11:08:33.297 に答える
2
var el = $("#myTab").find("td.reference:contains(3)")

:contains...セレクターが十分に優れていると仮定すると機能します-要素のコンテンツ内のどこでも(この場合)「3」に一致することに注意してください。

完全一致が必要な場合は、次を使用できます.filter()

var el = $("#myTab").find("td.reference")
                    .filter(function() { return $(this).html() === "3"; });
于 2012-11-26T11:09:04.460 に答える
0

または純粋な JavaScript:

 function func() {
        var myTab= document.getElementById('myTab');
        var len = myTab.rows.length;
        for (var r = 0; r < len; r++) {
            var rowLen = myTab.rows[r].cells.length;
            for (var cel = 0; cel < rowLen; cel++) {
                if(myTab.rows[r].cells[c].innerHTML === "3" && myTab.rows[r].cells[c].className === "reference")
                {
                   alert("found:"+myTab.rows[r].cells[c].innerHTML);
                }
            }
        }
    }
于 2012-11-26T11:20:28.427 に答える