1

私はいくつかの外側の div を持っています。それらのすべてに 3 つの内側の div が含まれていますclass1 class2 class3。を持つ内側のdivの値属性に基づいて、外側のdivを選択したいと思いますclass1。たとえば、最初の div を選択したいのは、そのclass1div に value があるためですx。jqueryでこれを行うにはどうすればよいですか?

<div> <-----this is the div I want to select
  <div class="class1" value="x"></div>
  <div class="class2" value="y"></div>
  <div class="class3" value="z"></div>
</div>

<div> 
  <div class="class1" value="a"></div>
  <div class="class2" value="b"></div>
  <div class="class3" value="c"></div>
</div>
4

4 に答える 4

2

私の最初の考えは:

$('.class1[value="x"]').parent();

しかし、構文がわかりませんでした(編集:動作します)。ただし、これも同様に機能します。

$('.class1').filter(function() {
    return $(this).attr("value") == "x";
}).parent();

ただし、これらは最初の親のみを返すことに注意してください (複数の子 div が一致する「値」属性を持つ場合)。複数の親の一致で何かをしたい場合は、結果を反復処理し$.eachて個別に見ることができます。

$('.class1[value="x"]').each(function() {
    var parent = $(this).parent();
});
于 2012-05-22T02:13:17.160 に答える
1
$('div').has('div[value=x]');

デモ

$('div:has([value=x])').closest('div');

デモ 2

$('div[value=x]').parents('div');

デモ3

$('div>div[value=x]').parent('div');

デモ 4

$.fn.getChildVal = function(val){  
  $('[value='+val+']').parent().css({background:'red'});
};

$('div').getChildVal('x'); 

プラグイン:)

ドキュメントから:

http://api.jquery.com/closest
http://api.jquery.com/has

于 2012-05-22T02:21:46.020 に答える
1

別の方法は、:hasセレクターを使用することです

var elem = $('div:has(.class1[value="x"])');
于 2012-05-22T02:18:04.587 に答える
0

あなたはそうすることができます。

           $(document).ready(function () {
            $("div.class1 [value='x']").parent('div');
        });
于 2012-05-22T02:18:19.463 に答える