-2

次のようなhtmlが与えられた場合:

<ul id="timesheetList">                                              
<li>
    <table>
        <tbody>
            <tr>
                <td>
                    <input type="checkbox" class="bigcheck">
                </td>
                <td>
                    <p class="hiddenId">73</p>
                </td>
            </tr>
        </tbody>
    </table>
</li>
<li>
    <table>
        <tbody>
            <tr>
                <td>
                    <input type="checkbox" class="bigcheck">
                </td>
                <td>
                    <p class="hiddenId">44</p>
                </td>
            </tr>
        </tbody>
    </table>
</li>
    <!-- the list goes on... -->

クラスが "bigcheck" であるすべての "checked" (ステータスがチェックされている) chechbox のすべての IDS (この場合は 44 と 73 ) を選択するにはどうすればよいですか?

ありがとう

4

3 に答える 3

3

次のようなものを使用できます。

var tds = $('td p.hiddenId').filter(function() {
    return $(this).parent().prev().children('input.bigcheck:checked').length != 0;
});
// tds contains the list of TDs matching your criteria
于 2012-08-31T12:35:07.723 に答える
2
  1. まず、チェックされているすべてのチェックボックスを取得します。使えます

    $("input:checkbox[name=type]:checked").each(関数(){

    });

    1. 次に、parentNode() を使用して TD に到達する必要があります。
    2. 次に、nextSibling() を使用して、すぐ次の TD に到達します。
    3. 次に、TD.childNodes[1].innerHTML が結果を返します

注: このアプローチを使用する場合、構造は同じままにする必要があります。

于 2012-08-31T12:43:17.390 に答える
1

これを試して:

var ids = [];
$("td > input.bigcheck:checked").each(function() {
    ids.push($(this).parent().next("td").children("p").text());
});
console.log(ids);

単なるガイダンスを受け入れるのではなく、機能する完全なソリューションを提供する可能性のある回答を待つ必要があります。

于 2012-08-31T12:51:44.847 に答える