- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试搜索特定文本以在找到链接时突出显示该链接。因为链接不在h4标签里面我不知道怎么解决。
<h4>Title P</h4>
...
<h4>Title X</h4>
<p class="item">
<a href="url" target="_new">ABC</a>
</p>
<div class="c">
<p class="item">
<a href="url" target="_new">EFG</a>
</p>
<div class="c">
<p class="item">
<a href="" target="_new">MNO</a>
</p>
<div class="c">
<p class="item">
<a href="url" target="_new">XYZ</a>
</p>
<h4>Title Z</h4>
...
我想在其他 h4 标签下重复查找的文本,但我只想突出显示标题 X 中的文本。
// @grant GM_addStyle
...
var h4 = document.getElementsByTagName("h4");
for (var i = 0; i < h4.length ; i++) {
if (h4[i].textContent.indexOf("Title X") != -1) {
var links = h4[i].nextElementSibling;
while (links && links.nodeName != "H4") {
if (links.textContent.indexOf("EFG") != -1){
links.setAttribute("id","color");
}
if (links.textContent.indexOf("MNO") != -1){
links.setAttribute("id","color");
}
}
}
}
GM_addStyle ( ' \
#color { \
background-color: #ffd65e; \
} \
' );
如果我删除 while,浏览器不会卡住。
var links = h4[i];
while ( (links = links.nextElementSibling) && (links.nodeName != "H4") ) {
if (links.textContent.indexOf("EFG") != -1) {
links.setAttribute("id", "color");
}
...
}
最佳答案
这似乎是您的代码的预期行为。请参阅以下两行。
var links = h4[i].nextElementSibling;
while (links && links.nodeName != "H4") {
您将 links
设置为当前 h4
元素之后的元素(在本例中为第一个,因为它永远不会继续),并反复检查该元素是否是truthy 并且不是 h4
元素。此 while
语句的主体中没有任何地方是 links
重新分配的,因此它简单地一遍又一遍地进行相同的检查,从而导致您的脚本挂起。
我不确定您要用这个脚本做什么,但也许您打算做一些链接来迭代同级元素?
var links = h4[i];
while ( (links = links.nextElementSibling) && (links.nodeName != "H4") ) {
关于javascript - nextElementSibling 卡住 firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26685932/
我在元素内部有几个 Javascript 输入,并且在它们下面有 s 。 我还有一个 javascript 函数,如果有字母输入,它会删除输入的值,以便它只接受数字。 t=function(ele
我正在尝试使用 vanilla JS 制作推荐模块,当我对集合使用“for”循环时遇到问题 - 控制台显示 testimonials[i].nextElementSibling is null。当我手
我目前正在编写一个 Accordion 并遇到了与 nextSibling difference between IE and FF? 中描述的相同问题。 - Microsoft 的 nextSibl
这个问题已经有答案了: How do I return the response from an asynchronous call? (42 个回答) 已关闭 4 年前。 我正在使用 CKEdito
我正在尝试搜索特定文本以在找到链接时突出显示该链接。因为链接不在h4标签里面我不知道怎么解决。 html代码 Title P ... Title X ABC EFG MNO X
这不完全是代码中的问题,但我无法理解问题背后的原因。首先,请看一下代码: HTML: Head First : Javascript
我在设置此脚本以在我的 Wordpress 站点中工作时遇到了这个问题。代码使用 nextElementSibling 获取相同级别的元素(制作 Accordion ),如 W3schools 页面所
示例:https://jsfiddle.net/theandybob/6wuc39d9/ 使用 IE 时,如果我有注释并尝试从中访问 nextElementSibling 属性,我会得到 undefi
我用纯 JS 编写了一个灯箱脚本: HTML: JS: function pLightbox(objPhoto){ var path=objPhoto.src; HTMLtext = '
有测试代码: 1 2 var id = document.getElementById("abc"); var div = id.nextE
在下面的代码中,没有 sibling 。 previousElementSibling正确返回 null ,但是 nextElementSibling没有。 nextEleme
虽然我似乎偶尔会得到奇怪的结果,但在我看来这些结果是一样的,所以有人可以描述一下区别吗? 最佳答案 “nextSibling”返回下一个节点对象,而“nextElementSibling”返回下一个元
我的html是这样的: me! convert! prints 函数只是将函数参数输出到控制台日志上。我需要立即找到 anchor 标记旁边的 a 标记的 href 值。即单击按钮时,我需要获取值
我正在尝试使用 nextElementSibling 以编程方式移动表单中的焦点,但是我也在使用 Typescript 并想要输入我的变量/常量... 我已经成功无需打字,并使用以下内容: myFun
在这个 HTML 结构中: one a two b 为什么会出现以下脚本: // Function to change the conten
这只是一个简单的下拉菜单...在 Chrome、FF 和 Safari 中运行良好。但在 IE 中:无法获取未定义或空引用的属性“样式” document.getElementById('icon')
你如何测试 child 实际上包含下一个元素兄弟或如果没有找到下一个兄弟? child = await page.evaluateHandle(el => el.nextElementSibling,
Here is div-01 Here is div-02 它们不是同一个东西吗? 两者都返回紧随其后的节点。我读了很多文章,但在我看来都喜欢同样的东西,但不知道在哪里使用其中一个与另一个? 最佳答案
我需要更新一些旧的 Javascript 以跨浏览器兼容。该代码最初是为 IE6 创建的,并且由于 HTML 的布局方式而大量使用 nextSibling 和 previousSibling。 显然
Javascript 新手。我最近发布了一个关于创建多个多层 Accordion 的问题。我得到了一些很好的反馈,但有人提到,如果我的 HTML 设置正确,我可以通过使用 nextElementSib
我是一名优秀的程序员,十分优秀!