选择包含特定元素的元素

时间:2015-11-30 13:46:48

标签: javascript jquery html

我有一些嵌套元素,我的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>

嗯,我怎么能这样做?

4 个答案:

答案 0 :(得分:2)

你可以像这样用h5选择标题。

jQuery("div > h5").parent()

答案 1 :(得分:2)

:has(selector).has().filter()会给你div:

使用:has()

$('div:has(> h5)')

&#13;
&#13;
$('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;
&#13;
&#13;

使用.has()

$('div').has('> h5)')

&#13;
&#13;
$('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;
&#13;
&#13;

使用.filter()

$('div').filter(function(){
    return $(this).children('h5').length !== 0 
});

&#13;
&#13;
$('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;
&#13;
&#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/