2014-11-24 96 views
2

如果我有这两个div:如何根据子元素中的数据选择元素?

<div class="foo"><div class="bar" data-stuff="1"></div></div> 
<div class="foo"><div class="bar" data-stuff="2"></div></div> 

如何选择与类Foo股利如果有参数2?我可以这样做:

$('.foo').find('[data-stuff=2]'); 

但我只会得到子元素。

+1

http://api.jquery.com/closest/'$( '[数据东西= 2]')最接近的( '富')' – melancia 2014-11-24 14:48:51

+0

。以前的评论应该是答案,找到你想要的数据然后找到父母/最近的.foo – 2014-11-24 14:55:51

+0

请改正你的问题。您正在通过属性“数据填充”进行搜索。 – Max 2014-11-24 15:00:05

回答

2

或者,使用其中的一些方法具有相同的结果:(3人使用。家长()选择在很多父元素的情况下):

当然 'DIV [类^ = “foo” 的]' 等于在这种情况下, '包含.foo' :) :)

var elems1 = $('[data-stuff="2"]').parent(); 
 
var elems2 = $('[data-stuff="2"]').closest('div[class^="foo"]'); 
 
var elems3 = $('[data-stuff="2"]').parents('div[class^="foo"]'); 
 

 
alert($(elems1).html()); 
 
alert($(elems2).html()); 
 
alert($(elems3).html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="foo"> 
 
    <div class="bar" data-stuff="1">1</div>parent1</div> 
 
<div class="foo"> 
 
    <div class="bar" data-stuff="2">2</div>parent2</div>

游乐场:http://jsfiddle.net/upeqt2qw/

+0

我选择了这个,因为它使用了最接近的方法,这被认为是这个问题中最好的解决方案。 – ohyeah 2014-11-24 15:26:09

+0

我会选择最接近的。我看到.parent(),并对自己说,为什么不提供父母()和父母()选择器...也许这将有助于某人。无论如何,感谢您的投票。 – 2014-11-24 15:29:40

3

选择元素,然后获取其父项。

$('[data-stuff="2"]').parent() 
1

只需调用父类的方法:

$('div.foo [data-stuff=2]').parent(); 
相关问题