2011-11-02 32 views
0

我如何使用2的文本節點訪問div?使用jquery訪問數組的項目?

<script> 
$(document).ready(function() { 
    alert($('.content').length); 

    $('.content').click(function(e) { 
// ... 
    }) 
}); 
</script> 

<div class='content'>1</div> 

<div class='content'>2</div> 

<div class='content'>3</div> 

<div class='content'>4</div> 
+0

如果你的意思是,當你點擊它,使用'this'或'e.target'在點擊功能:'警報($(本)的.html())'。 – hyperslug

回答

1

取決於這是否是你唯一的HTML或不。如果您的項目只包含單個數字,contains將起作用。如果沒有,您需要根據內容進行過濾。

$('.content').filter(function() { return $(this).text() == '2'; }) 
      ... 

在另一方面,如果你只是想第二個元素,無論內容,你可以使用eq()

$('.content').eq(2) 
      ... 
0

試試這個

var myDiv = $('div:contains("2")'); 
+0

除此之外也匹配'

12
' – tvanfosson

+0

這是真的。它不執行完全匹配。如果他需要,那麼你的方法是最好的。 –

1

使用.filter()結合.text()獲得包含其文本內容等於2(而不是:contains的所有元素,這也符合未磺酰基組成元素的jQuery 2的字符)

var divContaining2 = $('.content').filter(function(){ 
    return $(this).text() == "2"; 
}) 


ù SE的 .eq()方法來獲取該選擇相匹配的元素第次:

var divs = $('.content'); // Contains all `.content` elements. 
var div2 = divs.eq(2); // Get the second, returns a jQuery object 

// If you want the DOM element: 
var div2DOM = divs2[0]; // Alternative method: `divs2.get(0)` 
+0

不管它包含什麼文本,這不會在索引2處獲得div嗎? –

+0

@AbeMiessler更新了答案以反映問題。 –

0

嘗試

$("div :contains(2)")..... 

DEMO

0

你想要使用jQuery的filter()命令。試試這個:

$(document).ready(function() { 
    $('div.content').filter(function() { 
     return $(this).text() == '2' 
    }).css('background-color', 'red'); 
});