提问人:Mariano Schmands 提问时间:8/24/2023 更新时间:8/27/2023 访问量:27
Chrome 插件 - jQuery 访问元素的子节点
Chrome Plugin - jQuery access child nodes of element
问:
我正在尝试创建一个 Chrome 插件,该插件将链接广告到定义的 ul 的每个 li 元素。 我在使用jQuery访问此元素时遇到问题。
我试过了,但无法访问它。const ideaList = $("ul.idea-list");
我只访问DOM中非常高的元素。 const mainContent = $(“#main 内容”); 所以我试图找到 children() 并找到 (“*”),但它不起作用。 它的长度始终为 0。
<div data-v-32ba3100="" id="main-content" class="clearfix"><!---->
<div data-v-4396a345="" data-v-32ba3100="" class="designlist page-wrapper">
<multiple divs>
<div data-v-0f00a344="" data-v-4396a345="" class="design-list-view">
<ul data-v-0f00a344="" class="idea-list">
<li></li>
<li></li>
这是从 DevTools 复制的选择器 #main 内容 > div > div > div > div > div.design-list-view > ul > li
内容.js
$(document).ready(function () {
const mainContent = $("#main-content"); // works
const children = mainContent.find("*"); //not working
const ideaList = $("ul.idea-list"); // not working
console.log(ideaList);
if (ideaList.length > 0) {
// Select all <li> elements within the 'idea-list' <ul> using jQuery
const liElements = ideaList.find("li");
// Loop through the <li> elements and add a link to each one using jQuery
liElements.each(function () {
const link = $("<a>", {
href: "https://www.example.com", // Replace with the desired link URL
text: "Visit Example Website", // Replace with the desired link text
});
$(this).append(link);
});
}
});
答:
0赞
Mariano Schmands
8/27/2023
#1
将 MutationOberserver 添加到元素 ul.idea-list li 中。因此,只有当元素存在时,该过程才会开始。
评论
const ideaList = $("ul.idea-list");
如果它在脚本运行时存在,则会起作用。在 UL 存在后在控制台中尝试。如果这不起作用,那么它有可能不在同一个 DOM 中。例如,如果他们使用 iFrame$("ul.idea-list li").each(function() { ... };