dom 相关问题

通过文档对象模型,将此标记用于有关其他语言与XML / HTML交互的问题。不要将其用作HTML,JavaScript或SAX的简写 - 使用其他标记来表示语言和标记。

在 JavaScript 中保存用户的 cookie 首选项

我有一个简单的cookie横幅,如果用户单击“接受”按钮,它会加载谷歌分析脚本。然后它会记住一个月的选择并且不会再出现。但是,如果用户...

回答 1 投票 0

fetch可以用来替换整个文档或者html元素吗?

在 Web 扩展中,我一直将模板元素从后台页面作为字符串传递到空的本地 HTML 文件,并使用 browser.tabs.insertCSS 和 browser.tabs.executeScript 传递 CSS ...

回答 2 投票 0

检查事件的目标是否在组件内,而不使用 stopPropagation()

我正在使用自定义选择, 我如何检查事件的目标是否在组件内,而不是使用 stopPropagation? 这样我就可以避免在全局范围内停止点击事件的传播...

回答 1 投票 0

如何在点击事件上添加和删除多个框的背景颜色

当我单击一个框时,页面背景应该更改为框的颜色(正在发生),但我想要的是无论我最后单击哪个框,该框的颜色也应该改变。 我也是

回答 1 投票 0

JavaScript 准备好可视化大型数据集了吗?

我们有一些数据(10-50 列,数十万行),我们通常在 Excel 中将其可视化为折线图或堆积条形图。 用户希望能够放大和缩小图表以......

回答 3 投票 0

在页面加载时更改 HTML DOM

我想在页面上的 DOM 中编辑某些节点的内容,但是如果我使用 window.onload 执行此操作,则只有在整个页面加载后才能完成,并且可以看到节点的内容发生了变化。 那么,有没有...

回答 1 投票 0

您可以在不更改渲染数据的情况下更新 Vue Pinia 存储吗?或者更确切地说,只渲染一个数据更改?

我正在使用带有脚本设置的Vue3组合。我正在使用 pinia 商店。 我有一个 SPA,用户可以逐渐更改数据,这些数据存储在历史数组中。 可以重新创建所有的...

回答 1 投票 0

在 Java 中使用 DOM 从 XML 文档获取数据

我正在尝试使用 DOM 解析 XML 文件,但最后仅输出最后一个条目多次(在循环中)。请告诉我,有什么问题吗? (我是Java初学者) XML 近似...

回答 1 投票 0

如何从文本节点使用scrollIntoView

我不知道如何获取文本节点的元素,但我可以获取父元素。 我编写了一个 javascript 例程来使用范围进行选择。所以我有一个起始节点和结束节点......

回答 1 投票 0

更改 php DOMElement 的innerHTML

如何更改 php DOMElement 的innerHTML?

回答 10 投票 0

如何使用Javascript编辑文本样式

我试图让一个按钮在列表中创建新条目,其显示类似于: “#1 新点击我” 除了我想让“Click Me”在黑框中显示为黄色文本,然后我想要......

回答 3 投票 0

Virtual DOM 和 ReactDOM 有什么区别?

我在互联网上浏览了很多文章询问两者之间的区别,但几乎每个人都解释了 Virtual DOM 和 Real DOM 之间的区别。根据我的目前...

回答 1 投票 0

无法让 ngx-infinite-scroll 监听窗口滚动

我正在尝试实现 ngx-infinite-scroll 我无法让它执行我想要的操作,即监听浏览器或窗口滚动,以便我可以滚动内容并在需要时加载。 发生了什么事我...

回答 2 投票 0

如何使用 Javascript 更改元素的不透明度或可见性

我在按钮元素中使用了 3 个 svg,其中一个是未选中的 svg,已选中并正在加载。默认情况下,未选中的设置为 1,而其余的为 0。我想将未选中的不透明度更改为零

回答 1 投票 0

如何对 XML 文档到字符串转换方法进行单元测试

公共静态字符串convertDocumentToString(文档xmlDocument){ TransformerFactory tf = TransformerFactory.newInstance(); 变压器变压器; 尝试 {

回答 1 投票 0

创建网站搜索栏的快捷方式

我目前有一个 JS 代码保存为书签的 url,它允许我在网站上搜索任何内容。我的代码是 javascript:window.location="https://dental.crm.dynamics.co...

回答 1 投票 0

如何通过选择器获取父元素

示例: ... ... 示例: <div someAttr="parentDiv. We need to get it from child."> <table> ... <td> <div id="myDiv"></div> </td> ... </table> </div> 我想通过内部 div 元素(具有 myDiv 类的元素)中的某个选择器获取父级。 如何使用纯 JavaScript 实现这一目标,无需 jQuery? 类似: var div = document.getElementById('myDiv'); div.someParentFindMethod('some selector'); 您可以在现代浏览器中使用 closest(): var div = document.querySelector('div#myDiv'); div.closest('div[someAtrr]'); 使用对象检测提供 polyfill 或替代方法以向后兼容 IE。 这是最基本的版本: function collectionHas(a, b) { //helper function (see below) for(var i = 0, len = a.length; i < len; i ++) { if(a[i] == b) return true; } return false; } function findParentBySelector(elm, selector) { var all = document.querySelectorAll(selector); var cur = elm.parentNode; while(cur && !collectionHas(all, cur)) { //keep going up until you find a match cur = cur.parentNode; //go up } return cur; //will return null if not found } var yourElm = document.getElementById("yourElm"); //div in your original code var selector = ".yes"; var parent = findParentBySelector(yourElm, selector); 查找与给定选择器匹配的最接近的父元素(或元素本身)。还包括一个停止搜索的选择器,以防您知道应该停止搜索的共同祖先。 function closest(el, selector, stopSelector) { var retval = null; while (el) { if (el.matches(selector)) { retval = el; break } else if (stopSelector && el.matches(stopSelector)) { break } el = el.parentElement; } return retval; } 通过使用 querySelector() 和 closest() 方法可以获取父元素。 querySelector() 返回与 a 匹配的第一个元素 在文档中指定 CSS 选择器。 closest() 在 DOM 树中搜索最近的元素 与指定的 CSS 选择器匹配。 使用示例 const element = document.querySelector('td') console.log(element.closest('div')) <div> <table> <tr> <td></td> </tr> </table> </div> 如果需要选择多个元素,querySelectorAll() 是一个不错的选择。 querySelectorAll() 以静态 NodeList 对象的形式返回文档中与指定 CSS 选择器匹配的所有元素。 要选择所需的元素,需要在 [] 内指定它,例如第二个元素为: element[1] 在下面的示例中,closest()方法用于获取特定选定元素的父<tr>元素。 const el = document.querySelectorAll('td') console.log(el[1].closest('tr')) <div> <table> <tr id="1"> <td> First text </td> </tr> <tr id="2"> <td> Second text </td> </tr> </table> </div> 将 leech 的答案与 indexOf 一起使用(以支持 IE) 这是使用 leech 所说的,但使其适用于 IE(IE 不支持匹配): function closest(el, selector, stopSelector) { var retval = null; while (el) { if (el.className.indexOf(selector) > -1) { retval = el; break } else if (stopSelector && el.className.indexOf(stopSelector) > -1) { break } el = el.parentElement; } return retval; } 它并不完美,但如果选择器足够唯一,它就不会意外匹配到错误的元素。 这是一个递归解决方案: function closest(el, selector, stopSelector) { if(!el || !el.parentElement) return null else if(stopSelector && el.parentElement.matches(stopSelector)) return null else if(el.parentElement.matches(selector)) return el.parentElement else return closest(el.parentElement, selector, stopSelector) } 我想我会提供一个更强大的示例,也是用打字稿编写的,但它很容易转换为纯 JavaScript。该函数将使用“#my-element”之类的 ID 或“.my-class”类来查询父级,并且与其中一些答案不同的是,该函数将处理多个类。我发现我命名了一些类似的东西,所以上面的例子发现了错误的东西。 function queryParentElement(el:HTMLElement | null, selector:string) { let isIDSelector = selector.indexOf("#") === 0 if (selector.indexOf('.') === 0 || selector.indexOf('#') === 0) { selector = selector.slice(1) } while (el) { if (isIDSelector) { if (el.id === selector) { return el } } else if (el.classList.contains(selector)) { return el; } el = el.parentElement; } return null; } 按班级名称选择: let elementByClassName = queryParentElement(someElement,".my-class") 按 ID 选择: let elementByID = queryParentElement(someElement,"#my-element") 这是使用递归获取具有特定类的父级的简单方法。你可以修改它来根据选择器进行切换,但原理是一样的: function findParentByClass(child, parentClass) { let parent = child.parentElement; while(!(parent.className === parentClass)){ parent = findParentByClass(child.parentElement, parentClass) } return parent; } 函数parent_by_selector的简单示例,它返回父级或null(没有选择器匹配): function parent_by_selector(node, selector, stop_selector = 'body') { var parent = node.parentNode; while (true) { if (parent.matches(stop_selector)) break; if (parent.matches(selector)) break; parent = parent.parentNode; // get upper parent and check again } if (parent.matches(stop_selector)) parent = null; // when parent is a tag 'body' -> parent not found return parent; }; /* -------------------------------------------------- get a parent element by its id or classname [child] - the element were starting with [idOrClassName] - id or classname of parent element were looking for ------------------------------------------------- */ function getParent(child, idOrClassName = ""){ while(child.tagName.toLowerCase() != "body"){ // get the next parent up child = child.parentNode; // we reached body tag which means parent element with // class or id of [idOrClassName] not found so exit if(child.tagName.toLowerCase() == "body"){ return false; } // if the id of this element = [idOrClassName] or .classList // of [child] contains [idOrClassName], weve found our element if((child.id == idOrClassName) || (child.classList.contains(idOrClassName))){ return child; } } } 这是访问父ID的简单方法 document.getElementById("child1").parentNode; 将为您提供访问父级 div 的魔力。 <html> <head> </head> <body id="body"> <script> function alertAncestorsUntilID() { var a = document.getElementById("child").parentNode; alert(a.id); } </script> <div id="master"> Master <div id="child">Child</div> </div> <script> alertAncestorsUntilID(); </script> </body> </html> var base_element = document.getElementById('__EXAMPLE_ELEMENT__'); for( var found_parent=base_element, i=100; found_parent.parentNode && !(found_parent=found_parent.parentNode).classList.contains('__CLASS_NAME__') && i>0; i-- ); console.log( found_parent );

回答 12 投票 0

将插入符位置内容的 HTML 标签拆分为多个标签

我在插入符号位置拆分标签内容时遇到一些问题。我可以获得分割索引以及分割后插入符号位置的标签内容。我面临的问题已显示

回答 2 投票 0

如何在 javascript 中使用 {{ form.as_p }}

我有一个问题,我是一名 Django 开发人员,在我的程序中我想编写一个 JavaScript 文件,当我们单击按钮时,脚本文件会创建一个新表单。 JavaScript 文件: 函数 noid(){ c...

回答 1 投票 0

HTML 未发生更改

我希望将子“.summary”元素隐藏在特定的父“#block-2”元素中。这段代码有效。 函数 myFunction(x, y) { const a = document.getElementByI...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.