2 回答

TA貢獻1796條經(jīng)驗 獲得超4個贊
您可以嘗試使用.parents()
OR?.closest()
:
console.log($('.need-ID-of-class-2').closest('.2').attr('id'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="1">
? <div class="2" id="1">
? ? <div class="3">
? ? ? <div class="4">
? ? ? ? <input class="need-ID-of-class-2" value="">
? ? ? </div>
? ? </div>
? </div>
</div>

TA貢獻1789條經(jīng)驗 獲得超10個贊
訪問最近祖先元素的不同方法是,closest(),parents(),querySelector和closest()。
$('.need-ID-of-class-B').closest('.B').attr('id');
$('.need-ID-of-class-B').parents('.B').attr('id');
document.querySelector('.need-ID-of-class-B').closest("div .B").getAttribute('id');

TA貢獻1887條經(jīng)驗 獲得超5個贊
使用.closest([class="2"])您可以獲得匹配的祖先.2,并獲取其ID:
const input = document.querySelector('input');
console.log(input.closest('[class="2"]').id);
<div class="1">
<div class="2" id="1">
<div class="3">
<div class="4">
<input class="need-ID-of-class-2" value="">
</div>
</div>
</div>
</div>
如果可能的話,修復您的 HTML,使其類有效 - 類名不應以數(shù)字開頭。然后你可以使用.而不是[class]:
const input = document.querySelector('input');
console.log(input.closest('.two').id);
<div class="1">
<div class="two" id="1">
<div class="3">
<div class="4">
<input class="need-ID-of-class-2" value="">
</div>
</div>
</div>
</div>
- 2 回答
- 0 關注
- 137 瀏覽
添加回答
舉報