我有一些嵌套元素,我的HTML结构没有任何规则。此外,没有任何classname或id用于选择所考虑的元素。所以,我唯一的线索是包含特定元素。
注意:应该注意,我的HTML代码是动态的。我的意思是他们的结构一直不相同。有时它们是这样的:
<div> <h1> <span> anything </span> </h1> <h5> anything> </h5> </div>
有时候他们就是这样:
<div> anything </div> <div> <h2> anything </h2> <h5> anything> </h5> </div>
有时候他们就是这样:
<div> <span> anything </span> </div> <div> <h5> anything> <h2> anything </h2> </h5> </div>
等等..!好吧,如你所见,我不能使用这些:
$(elmnt).closest("tag");
$(elmnt).siblings("tag");
因为正如我所说,HTML代码不是常量。现在我想知道,如何选择包含<div>
的{{1}}?所以我想要上面三个例子的输出:
<h5>
嗯,我怎么能这样做?
答案 0 :(得分:2)
你可以像这样用h5选择标题。
jQuery("div > h5").parent()
答案 1 :(得分:2)
:has(selector)
,.has()
或.filter()
会给你div:
使用:has()
:
$('div:has(> h5)')
$('div:has(> h5)').css('background', 'red')
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div> <h1> <span> anything </span> </h1> <h5> anything </h5> </div>
&#13;
使用.has()
:
$('div').has('> h5)')
$('div').has('> h5').css('background', 'red')
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div> <h1> <span> anything </span> </h1> <h5> anything </h5> </div>
&#13;
使用.filter()
:
$('div').filter(function(){
return $(this).children('h5').length !== 0
});
$('div').filter(function(){
return $(this).children('h5').length !== 0
}).css('background', 'red')
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div> <h1> <span> anything </span> </h1> <h5> anything </h5> </div>
&#13;
答案 2 :(得分:1)
这样的事情:
$('div h5').parent()
我不确定parent()函数,但应该有类似的东西....
答案 3 :(得分:1)
您可以使用parent()选择器获取div:
仅检查div,并包含h5元素:
如果<h5>
元素的直接父级不是“div”,则选择器不会选择父级:
$("div > h5").parent();
<div><h5>Something</h5></div>
或者如果你想得到div元素的父(不是直接),你可以使用:
$("h5").parent("div");
<!-- In this case: the selected parent element is the <div></div> -->
<div><p><h5>Something</h5></p></div>
如果你想得到父母(如果父母不是div),你可以使用:
$("h5").parent();
<!-- In this case: the parent element is the <p></p> -->
<div><p><h5>Something</h5></p></div>
你在这里有官方的JQuery文档=&gt; https://api.jquery.com/parent/