选择其具有特殊属性的最近父元素具有特殊值的元素

时间:2016-05-05 12:49:44

标签: javascript jquery html css

我想选择一个具有特殊属性的最近父元素具有特殊值的元素。例如,在下面的代码中,我想选择一个具有att2 =“sp”的元素,并且它是具有“att1”属性的最接近元素,其值等于“first_div”。

<div att1="first_div">
    <div att1="sec_div">
        <span att2="sp">
        </span>
    </div>
    <div>
        <span att2="sp">
        </span>
    </div>
</div>

3 个答案:

答案 0 :(得分:2)

如果只是一个CSS选择器,那么显然也可以在jQuery中使用。

[att1=first_div] :not([att1]) [att2=sp], [att1=first_div] > [att2=sp]

应该做什么?

用jQuery术语,

var $el = $('[att1=first_div] :not([att1]) [att2=sp], [att1=first_div] > [att2=sp]');

编辑:

好的,看起来这个问题可能有点超出了纯CSS解决方案的范围。这个JavaScript位应该最终得到你想要的结果:

var $matches = $('[att2=sp]').filter(function() {
    // Get closest parent with 'att1' attribute
    var $closestCandidate = $(this).closest('[att1]');
    // Include in result if a parent with att1 was found, and the att1 value is 'first_div'
    return $closestCandidate.length && $closestCandidate.attr('att1') === 'first_div';
});

请参阅this fiddle

答案 1 :(得分:0)

你可以这样做: -

$("div[att1='first_div']").find("span[att2='sp']");

它可能对你有帮助。

答案 2 :(得分:0)

试试这个

ContactDAOImpl contactDao = new ContactDAOImpl();
contactDao.setSessionFactory((SessionFactory)context.getBean("sessionFactory"));
var temp=$('span[att2="sp"]').first().parent().parent();

alert(temp.attr("id"));

另一个选项

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div att1="first_div" id="testing">

<div att1="sec_div">
    <span att2="sp">
    </span>
</div>
<div>
    <span att2="sp">
    </span>
<div>