【发布时间】:2012-05-09 03:22:42
【问题描述】:
如果我在 HTML 文件中手动编写以下几行:
<div>
<input type="button" value="Button 1">
<input type="button" value="Button 2">
</div>
将为每个新行创建一个文本节点。
我想了解 addEventListener 方法的 useCapture 参数。 我选择使用 div 元素的 childNodes 属性访问 DOM 元素,但我将不得不忽略元素之间的 textNodes。这不太实用:
document.getElementsByTagName("div")[0].addEventListener("click", function(){alert(1);}, true);
document.getElementsByTagName("div")[0].childNodes[1].addEventListener("click", function(){alert(2);}, false);
document.getElementsByTagName("div")[0].childNodes[3].addEventListener("click", function(){alert(3);}, false);
您看到我必须忽略 childNodes[0] 和 childNodes[2] 才能选择我的 2 个输入标签。
有没有一种方法可以绕过 textNodes 创建,而无需在一行上编写所有 HTML 代码,也无需使用 Javascript createElement?
是否可以在换行时不创建文本节点而编写 HTML 代码?
【问题讨论】:
-
在
javascript中是否可以在没有{ }的情况下在if中编写两行代码?不,这就是语言的设计和工作方式。同样的事情。 -
@gdoron in Javascript, C, C++, C#, {} 当我们有超过两行代码时总是需要的
-
ht我知道...我的意思是说,这是HTML语法规则,就像javascript一样,HTML有它的规则,新行创建一个textNode...:)
标签: javascript html dom textnode