- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
自从我开始学习 JavaScript 以来,我一直在阅读 Tim Wright 的这本名为Learning JavaScript 的书。
在这本书中,我找到了一章关于我们如何在 DOM 树中移动和定位元素,其中一章是利用以 sibling 为目标的属性,而在做书中的练习时,我根本无法做出以下陈述工作:
<ul id="nav">
<li><a href="/" id="home">Home</a></li>
<li><a href="/about" id="about">About Us</a></li>
<li><a href="/contact" id="contact">Contact Us</a></li>
</ul>
<script>
//Should add "next" class attribute to the "Contact Us" li tag.
document.getElementById("about").parentNode.nextSibling.setAttribute("class", "next");
</script>
快速查看这段代码后,我想知道你们中是否有经验丰富的开发人员可以帮助我并解释为什么这不能正常工作。我感到很困惑,因为我不知道是我做错了什么,还是有关这些属性的文章拼错了。
无论如何,感谢您的时间和提前的帮助!
干杯!
cs.almeida
最佳答案
nextSibling
选择元素的下一个兄弟。下一个兄弟节点也可以是没有 setAttribute
方法的 textNode
,即您的代码试图做的是向下一个兄弟 textNode 添加一个类。如果您删除 2 个 li
元素之间的换行符和其他隐藏字符,那么您的代码将按预期工作。
另一个选项是使用 nextElementSibling
属性而不是 nextSibling
,它将选择具有 nodeType
的下一个兄弟节点1
,即下一个 HTMLElement
元素的兄弟。
document.getElementById("about")
.parentNode
.nextElementSibling
.classList // https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
.add("next");
关于javascript - 使用 previousSibling 和 nextSibling 设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28800201/
我们能够运行此代码 str.parentNode.nextSibling.tagName 并获得相应的名称。我们需要的是 nextSibling 之后的 nextSibling 所以我们尝试了这个 s
销毁自己的示波器时,我在程序中始终遇到此错误。我在角度范围内跟踪到了这个while循环: if (!(next = (current.$$childHead || (current !== targe
我目前正在做一个项目,我必须填充表格的不同列,因为我正在使用 .nextSibling,但是如果我定位,行可能会很长,让我们说第 4 列: firstTd.nextSibling.nextSiblin
这是我的代码,它没有发出任何警报,也没有返回任何好的 :(第一部分工作正常但事后它没有:(我似乎无法弄清楚问题是什么.. this.getNextItem = function(o) { //
我想知道属性 NextSibling 如何在使用方法 getElementsByClassName() 的情况下有效?这是显示问题的代码示例: function Sibling() { var
我希望下面的代码能够提醒“out” this is output 但它会提示 undefined为什么? 最佳答案 nextSibling 选择元素的下一个兄弟节点。下一个节点也可以是 textNo
function function1() { var m = document.getElementById("myNodeOne").nextSibling; m.innerHTM
我正在尝试使用以下内容获取内容“我的家庭地址”,但得到了 AttributeError: address = soup.find(text="Address:") print address.next
OT/UT ENTRY
此 Meteor 客户端代码尝试获取 2 个值。 (1)this.label中的值的{{this.label}}线。 (2){{this.result}}中的值在线 当我单击 input 时,就会发生
我目前正在编写一个 Accordion 并遇到了与 nextSibling difference between IE and FF? 中描述的相同问题。 - Microsoft 的 nextSibl
我看到这两个属性的描述是只读的。那么这意味着什么,因为我做了一个使用 firstChild 像 的小测试 $('#one').firstChild.textContent = "ssss"。 最佳答案
我确信这个问题有一个简单的答案,但我无法构建一个搜索问题来将其找出来。 我有多个“nextSibling”属性来在一组未经修饰的 td 标签之间移动,总共需要 22 个。 有没有办法将这些相乘,例如'
我有一个包含单元格的表格,我可以在其中输入值(该表格是一个时间表,我可以通过双击该单元格在单元格中输入房间号)。现在我想在 tab 键上添加一个键监听器。如果我按下 tab 键,当前单元格中的值应该被
当我调用 querySelectorAll('#fchildP') 并且想要获取它的firstChild 节点时,它返回数据属性为 的 #text node\n resp "breakline" 和
我正在尝试附加到多个 div 的下一个元素。到目前为止我有这个: HTML 函数运行后,内容应如下所示: My content My content My content 这是我迄今
我有以下 span 元素: Type here please. Name here first name 使用下面的js函数,我可以获得之间的长度和 : $('span.insid
这不完全是代码中的问题,但我无法理解问题背后的原因。首先,请看一下代码: HTML: Head First : Javascript
我仍在尝试了解 NextSibling,并且我在 excel VBA 中使用 XMLHTTP。 这是元素的 HTML
我正在使用 HtmlAgilityPack 抓取一些数据。 HTML 看起来像这样: Field Name Value for above field name
我是一名优秀的程序员,十分优秀!