我想选择一个具有特殊属性的最近父元素具有特殊值的元素。例如,在下面的代码中,我想选择一个具有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>
答案 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>