2014-11-24 130 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(); 
相關問題