の後にすべてのチェックボックスを取得したいと考えています。 このチェックボックスは異なるdivとテーブルにあります。 私が試した:あなたはDOM(test case)を登る必要があり深くネストされていても、特定の要素の後ろにあるすべての要素を取得
$('.available').click(function() {
$(this).nextAll("input:checkbox").each(function()
{
//code
});
});
おかげ
の後にすべてのチェックボックスを取得したいと考えています。 このチェックボックスは異なるdivとテーブルにあります。 私が試した:あなたはDOM(test case)を登る必要があり深くネストされていても、特定の要素の後ろにあるすべての要素を取得
$('.available').click(function() {
$(this).nextAll("input:checkbox").each(function()
{
//code
});
});
おかげ
:
$(this)
.parents().andSelf() // get all parents of this as well
.nextAll().find('input:checkbox').andSelf() // get all siblings after and find any
.filter('input:checkbox'); // if real next sibling wasn't, kill it
は、これはかなりのパフォーマンス重いであることを心に留めておくようにしてください。あなたは以下のとおりです。
ノードjQueryの容易さの外にあるより良い方法です。これはO(n^n)の複雑さ - 最悪の種類かもしれません。あなたの特定の要素がチェックボックスである場合、私は知らないが、そうでなければ、すべてのチェックボックスとあなたの要素を含むセットで開始する必要があると思います
:
var selector = ':checkbox, #target';
あなたは、インデックスを見つけることができますindex()
を使用することにより、そのセットであなたの要素の:
var targetIx = $('#target').index(selector);
そして、あなたはまた、そのインデックスの後にすべてのものにあなたのセットを減らすことができるであろう:
var elementsAfter = $(selector).slice(targetIx+1);
nextAll
は兄弟を取得し、そう...
最初のは、すべてのチェックボックスを取得できるようになる:、次の
var checkboxes = $("input:checkbox");
を私たちが望むものだけを格納する配列を準備します
var checkboxesslice = [];
ここでループを繰り返して出発点を探しましょう:
これは完全にテストされていませんが、あなたはそのアイデアを得るでしょう。
マークアップの部分が多分? –
その特定の要素 –
サンプルHTMLを投稿できます – Pavan