亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過同級文本獲取特定同級元素之后的元素

通過同級文本獲取特定同級元素之后的元素

慕后森 2024-01-18 20:39:30
我有以下 html 代碼:<div class="account-type">   <h3>Assets</h3>   <ul> ...lots of data in here... </ul><div class="account-type">   <h3>Liabilities</h3>   <ul> .... lots of elements in here... </ul>如何將 div 標簽與“account-type”類隔離,該“account-type”類是帶有文本“Liability”的 h3 標簽的直接父級?我需要隔離它,然后循環遍歷它的 ul 標簽中的所有元素。
查看完整描述

1 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

假設<ul>應該在 之后<h3>,您可以使用以下組合:

  1. :包含

  2. :下一個

  3. 孩子們

function getItemByTitle( title ){

? return $(`h3:contains("${title}")`).next('ul').children()

}


var listItems = getItemByTitle("Liabilities")


console.log(listItems.length)

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="account-type">

? ?<h3>Assets</h3>

? ?<ul></ul>

</div>

<div class="account-type">

? ?<h3>Liabilities</h3>

? ?<ul>

? ? <li>1</li>

? ? <li>2</li>

? ?</ul>

</div>


查看完整回答
反對 回復 2024-01-18
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

DOM 中沒有文本匹配,因此需要選擇所有元素,查看文本是否匹配。如果它確實選擇了父級。


const h3 = Array.from(document.querySelectorAll(".account-type > h3")).find(elem => elem.textContent.trim() === 'Liabilities');

console.log(h3)

const div = h3.closest(".account-type");

console.log(div);

const lis = div.querySelectorAll("ul li");

console.log(lis.length);


// or

console.log(h3.nextElementSibling.children)

<div class="account-type">

  <h3>Assets</h3>

  <ul></ul>

</div>

<div class="account-type">

  <h3>Liabilities</h3>

  <ul>

    <li>a</li>

    <li>b</li>

  </ul>

</div>


查看完整回答
反對 回復 2024-01-18
  • 1 回答
  • 0 關注
  • 222 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號