1

data-view属性を持つすべての要素を見つけたいわけではありませんdata-viewが、他の要素の親である要素が存在する可能性があるとしましょうdata-view。私は子供たちが検索に参加してほしくない、私は両親が欲しい.

$('[data-view]').each(function() {});

次の HTML を使用します。

<body>
   <div data-view="app">
       <div data-view="hello1">
       </div>
   </div>
   <div data-view="job">

   </div>
</body>

appand joband notのみを返す必要がありhello1ます。セレクターの使用に運がなかったので、要素の.not選択が停止しました。[data-view]

助言がありますか?

4

4 に答える 4

1

試す:

var target_attr = "[data-view]";
$(target_attr).filter(function () {
    return !$(this).find(target_attr).length;
}).each(function () {
    // Whatever
});

デモ: http://jsfiddle.net/gEVyk/1/

これにより、同じ属性を持つ子孫data-viewが 0個ある属性を持つすべての要素が検索されます。あなたの場合、それはとです。hello1job

それらが のみであると確信している場合は<div>、 を使用する必要がありますdiv[data-view]

これにより、同じ属性を持つが 0 個ある属性を持つすべての要素が検索されます。

var target_attr = "[data-view]";
$(target_attr).filter(function () {
    return !$(this).parents(target_attr).length;
}).each(function () {
    // Whatever
});

デモ: http://jsfiddle.net/ue9w9/1/

あなたの場合、それはappjobです。

于 2013-04-27T20:15:25.617 に答える
1

どうですか

$('[data-view]:not([data-view] [data-view])').each(function() {});

http://jsfiddle.net/p5P8X/

于 2013-04-27T20:15:48.860 に答える
0

のようなものを試してください$("body").children("[data-view]")。は.children()、選択した要素の直接の子孫のみを調べます。

于 2013-04-27T20:13:24.670 に答える
0

これでうまくいくはずです:

$('[data-view]:not([data-view] [data-view])').each(function() { ... });
于 2013-04-27T20:18:07.983 に答える