这可能是一个很长的镜头,但有没有一种方法可以在没有特定标签/类/ id的情况下获取JQuery中的元素集合,甚至是嵌套的元素?
假设我有这段代码:
<div class="container1">
Lorem ipsum dolor sit amet
<br><br>
</div>
<p>This is p 1
<div class="footer">
tessssst
<p>
p test
</p>
</div>
</p>
<div class="container">
tessst
</div>
<p>This is p 2
<div id="someID" class="container">
tessssst 2
</div>
</p>
现在,我正在使用这样的JQuery,以便找到除div之外的所有div标签:
$('body').find(':not(div, div *)')
在结果集合中,我仍然在p元素中得到div,我不希望这样。 有没有办法实现这一目标?我知道这个div是h1的一部分,因为我只是想选择元素而不是删除或做DOM操作,所以这可能是一个奇怪的事情,但这就是我需要的。
更大的问题 - 我需要检索所有文本节点,但要排除一些标签/类/ ID。我是按照建议here这样做的,但这还不够好。
感谢。
答案 0 :(得分:0)
您提供的代码似乎有效,但也许您可以试试这个?
$('body').find("*").filter(":not(div)");
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以首先选择所有元素,然后选择<div>
及其后代,并使用.not()
使用“div”结果过滤“all”结果(使用红色样式)标记匹配的集合:
var all = $('body').find('*');
var divAll = $('body').find('div, div *');
var nonDiv = all.not(divAll);
nonDiv.css('color', 'red');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container1">
Lorem ipsum dolor sit amet
<br><br>
</div>
<p>This is p 1
<div class="footer">
tessssst
<p>
p test
</p>
</div>
</p>
<div class="container">
tessst
</div>
<p>This is p 2
<div id="someID" class="container">
tessssst 2
</div>
</p>
答案 3 :(得分:0)
在过滤器功能中检查它是否为文本节点,并检查其所有父类的类,标识,标记名称 - 无论您想要过滤哪个选择器。
listView.setOnClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView<Product> parent, View view, int position, long id){
Toast.makeText(QRScanMenu.this, "You Clicked at "+ parent.getItemAtPosition(position).name, Toast.LENGTH_SHORT).show();
}
});
以下是一个工作示例:https://jsfiddle.net/hracw15o/3/