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

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

使用 jQuery 選擇器組合多個 JS 選擇器

使用 jQuery 選擇器組合多個 JS 選擇器

HUH函數 2023-06-15 16:36:10
我正在使用以下 JS 行選擇一組表行:document.getElementById('tab1_content').contentDocument.documentElement.getElementsByClassName("data1_smaller")這些代表目錄中的條目。我只想返回上面那些也包含單詞“CHAPTER”的內容,所以我試圖使用 jQuery :contains() 選擇器來完成此操作,并試圖將整個內容轉換為單個 jQuery 選擇器;因此,首先,我嘗試轉換以下無效行:document.getElementById('tab1_content').contentDocument.documentElement.getElementsByClassName("data1_smaller").$(":contains('CHAPTER')")對此:$("#tab1_content > contentDocument > documentElement > .data1_smaller:contains('CHAPTER')")上面的選擇器沒有給出錯誤,但它找不到任何東西。有人知道這樣做的正確方法嗎?
查看完整描述

3 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

你可以像開始時那樣用純 vanilla js 實現你想要的。您只需要對代碼做一些小的調整。您可以使用它querySelectorAll()來查詢與您 ID 內的選擇器匹配的所有元素。僅通過查看您的示例,這樣的事情就應該起作用,但可能需要進行一些小的調整。


[...document.getElementById('tab1_content').querySelectorAll(".data1_smaller")].filter((node) => node.textContent.includes('CHAPTER'))


// Edit, saw in the comments that you're accessing content in an iframe

[...document.getElementById('tab1_content').contentWindow.document.querySelectorAll(".data1_smaller")].filter((node) => node.textContent.includes('CHAPTER'))


查看完整回答
反對 回復 2023-06-15
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

我根據 Anurag Srivastava 的評論找到了這個解決方案:

$("#tab1_content").contents().find(".data1_smaller:contains('CHAPTER')")

問題是我試圖選擇 iframe 內部的內容,而我用來訪問 JS 中的 iframe 的 .contentDocument.documentElement 必須更改為 jQuery 中的 .contents() 才能正常工作。


查看完整回答
反對 回復 2023-06-15
?
波斯汪

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

contentDocument 或 documentElement 都不是有效的 HTML 標簽。嘗試按 id 或類名進行選擇。



查看完整回答
反對 回復 2023-06-15
  • 3 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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