有人可以用尽可能简单的方式解释我,经典DOM parentNode和Firefox 9中新引入的内容有什么区别parentElement
做getElementsByClassName
(等类似的功能getElementsByTagName
和querySelectorAll
)的工作方式相同getElementById
,还是他们返回元素的数组?
我问的原因是因为我试图改变所有元素的样式getElementsByClassName
.见下文.
//doesn't work
document.getElementsByClassName('myElement').style.size = '100px';
//works
document.getElementById('myIdElement').style.size = '100px';
Run Code Online (Sandbox Code Playgroud) 虽然我似乎偶尔会得到奇怪的结果,但这些似乎与我相同,所以有人可以描述这种差异吗?
我已经编写了一段时间在XML上运行的代码,我一直想知道有两个节点和元素的原因是什么?(我们知道差异是什么).它们都代表标签(或多或少)并且具有不同的方法,只是使代码变得复杂.
是否有任何特殊的语义或实际原因,或者只是DOM规范是委员会生成的事实?
如何将 a 转换HTMLElement
为Node
元素。
根据这个答案(/sf/answers/698584561/)a ...An element is one specific type of node
但我找不到转换它们的方法。
我特别需要一个 Node 元素,将其传递到 a MutationObserver
( https://nitayneeman.com/posts/listening-to-dom-changes-using-mutationobserver-in-angular/ ),并且 aHTMLElement
会引发错误。
以下代码工作正常,我能够获取所选行的第一个单元格的值:
document.getElementById("tst").onclick = function() {
var chosen = document.getElementsByClassName('selected');
var myTd = chosen[0].getElementsByTagName('td');
var rightCell = myTd[0];
console.log(rightCell.innerHTML);
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>table_js_test002.html</title>
<link href="css/test_table.css" rel="stylesheet">
</head>
<body>
<table id="table">
<tr>
<td>1 Ferrari F138</td>
<td>1 000€</td>
<td>1 200€</td>
</tr>
<tr class="selected">
<td>2 Ferrari F138</td>
<td>1 000€</td>
<td>1 200€</td>
</tr>
<tr>
<td>3 Ferrari F138</td>
<td>1 000€</td>
<td>1 200€</td>
</tr>
</table>
<input type="button" id="tst" value="OK" onclick="fnselect()" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这也有效:
var myTd = chosen[0].cells[0].innerHTML;
Run Code Online (Sandbox Code Playgroud)
我的问题是,从我有限的JavaScript和DOM节点导航的理解,是不是<td>
一个孩子 …