2011-12-17 59 views
1

我想获取包含特定文本的元素。当我使用:contains选择器时,结果也是该特定元素的所有父元素。使用jQuery中的特定文本搜索元素

此外,如果实际上包含文本的元素多于,则选择器的结果非常麻烦。是否有可能只获取包含特定文本的元素?

感谢, 乔尔

编辑:

例子:

<body> 
    <div> 
     <div> 
      <div>text</div> 
     </div> 
    </div> 
</body> 

和$( “分区:包含( '文本')”)结果:

[<div>​…​</div>​, <div>​…​</div>​, <div>​text​</div>​] 

我想要一种方法只能得到<div>text</div>元素。 (我知道我可以使用.get(-1)来获取最后一个元素,但是我想知道是否有更多的gemeric)。

+0

你可以发布你的html以及你想获得什么元素与你不想获得什么元素的例子吗? – mrtsherman 2011-12-17 06:37:29

+0

嗨,我不理解你,你是什么意思关于“文本”?你的意思是InnerText?或InnerHTML? – 2011-12-17 06:38:27

回答

3

你可以尝试这样的:

$(":contains('text')").each(function() { 
    if($(this).find(":contains('text')").length > 0) { 
    // ignore. this is just an element containing at least 1 child containing 'text' 
    } 
    else { 
    // this is an element you want, directly contains 'text' 
    // .. your code here .. 
    } 
}); 
0

我不KHOW这样工作的权利,但你选择了它,如果它不能正常工作,发表评论我来编辑它的其他解决方案

$("div[innerHTML=text]")