textContent和innerTextJavaScript有什么区别?
我可以使用textContent如下:
var logo$ = document.getElementsByClassName('logo')[0];
logo$.textContent = "Example";
Run Code Online (Sandbox Code Playgroud) 我想做一个简单的循环:
const parent = this.el.parentElement
console.log(parent.children)
parent.children.forEach(child => {
console.log(child)
})
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
VM384:53未捕获的TypeError:parent.children.forEach不是函数
尽管parent.children日志:
可能是什么问题呢?
注意:这是一个JSFiddle.
有一段代码,但不能使用<id>标签.
那么,我怎么去<span> 1 2 3 4?
<div id="test">
<span>1</span>
<span>2</span>
<span>3</span>
<span>4</span>
<div>
Run Code Online (Sandbox Code Playgroud) 我已经使用javascript一个星期了.我目前正致力于通过节点使工作/改变.但是我注意到了一些奇怪的东西,对于一个不熟练的javascripter来说也是如此.
我的网站中有一个结构,如下所示:
<html>
<head>
<title>....</title>
<link/>
<script></script>
</head>
<body>
<div 1>
<div 2></div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我试图找到具有下一个函数的子节点时:
var headerBox = document.body.childNodes;
var txt = "";
for (var x = 0; x < headerBox.length; x ++) {
txt =txt+"Childnode["+x+"]: "+headerBox[x].localName+" ("+headerBox[x].className+")<br>";
}
var x = document.getElementById(box);
x.innerHTML = txt;
Run Code Online (Sandbox Code Playgroud)
我得到一个列表,其中包含一些未定义的"NULL"以及reali DIV
但是,当我只是将"document.body.childNodes"更改为"document.body.children"时,一切都很完美,"NULL"值甚至会发生变化.
我想知道的是"NULL"值在HTML文件中表示的是什么,因为"NULL"值的位置没有元素.在我的脑海里,它给了我一些不存在的东西,可见,但它是......
有人可以向我解释发生了什么事吗?
Ps:我很抱歉可能转发这个但我无法找到关于此事的合适的其他问题!
Pss:找到一个转发(JavaScript中的children和childNodes有什么区别?).但它没有回答为什么它仍然认为看不见的未定义的子节点.
我在这里有一个非常简单的jsfiddle:
它由这个html组成:
<svg></svg>
Run Code Online (Sandbox Code Playgroud)
这个javascript:
alert(document.getElementsByTagName("svg")[0].children);
Run Code Online (Sandbox Code Playgroud)
我希望它能提醒像"[Object HtmlCollection]"这样的东西.但在IE 11中,它给出了"未定义".尽管互联网声称IE 11确实支持svg children,SVGSVGElement但似乎该属性尚未定义.是什么赋予了?
发生了什么......如果你改变HTML中不同标签之间的间距或换行符,就会导致JavaScript或CSS出现问题(不确定哪一个).
代码本身是仅使用HTML,JavaScript和CSS的基本可折叠列表.我意识到你可以用jquery等来做这件事.只是试图得到这个代码的解释.如果单击下面的jsfiddle链接,运行它,然后单击它将展开的标题,然后单击折叠.整理或更改间距并再次运行 - 单击时消失.
HTML
<div class='collapsibleCont'><h3 id='collapsible1' class='collapsibleTitle' onclick="handleCollapsible('collapsible1')">+ title</h3><p style="display:none" class='collapsibleContent'>hello</p>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
function handleCollapsible(id) {
var clickedTitle = document.getElementById(id);
var contentC = clickedTitle.parentNode.childNodes[1];
if (contentC.style.display == 'none') {
contentC.style.display = 'block';
var mysplittedtitle = clickedTitle.innerHTML.split(" ");
var newTitle = "- " + mysplittedtitle[1];
clickedTitle.innerHTML = newTitle;
} else {
contentC.style.display = 'none';
var mysplittedtitle = clickedTitle.innerHTML.split(" ");
var newTitle = "+ " + mysplittedtitle[1];
clickedTitle.innerHTML = newTitle;
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助或想法将不胜感激.
-
原始代码在下面的帖子中转到"Th0rndike".
我尝试过搜索但没有找到答案:
所以我知道,当浏览器传递或下载页面时,会生成该页面的树结构表示形式(称为 DOM)。然后可以使用 JavaScript 来操作该树的节点(表示元素的对象)。
现在如果我打开 Chrome 的开发者控制台并执行命令:
document.childNodes;
Run Code Online (Sandbox Code Playgroud)
我得到了我所期望的,即两个节点,即 DOCTYPE 和 html 节点
[<!DOCTYPE html>, html]
Run Code Online (Sandbox Code Playgroud)
如果我现在将一个变量分配给 html,然后检查它的节点,如下所示:
var htmlNode = document.childNodes[1];
htmlNode.childNodes;
Run Code Online (Sandbox Code Playgroud)
奇怪的事情发生了:
我按预期得到“头”节点,然后有一个“文本”节点,我不知道它来自哪里,最后按预期得到“主体”节点。
[head, text, body]
Run Code Online (Sandbox Code Playgroud)
我的问题是这个“文本”节点来自哪里?
这是我的网站http://www.alienchela.com/portfolio.html.
首先单击任何客户端图像即可.
但是,如果你每次点击下一个按钮,你就可以看到.首先是前一个图像,然后下一个图像加载.
这是代码:
var ticker = $('.img_wrap');
$('.next').click(function () {
$('.img_panel:visible').fadeOut(1000, function() {
$(this).appendTo(ticker);
ticker.children().first().show(function(){
var artit = $(this).attr('title');
$(this).load(artit+'.txt');
});
});
$(ticker).hide().delay(1500).fadeIn(1000);
});
Run Code Online (Sandbox Code Playgroud)
我做了一个黑客.我做了一些延迟过渡.
$(ticker).hide().delay(1500).fadeIn(1000);
Run Code Online (Sandbox Code Playgroud)
JS不是很好.
任何帮助表示赞赏.
从概念上讲有什么区别?
它们看起来都是只读的并且是实时的。活着是什么意思?如果 DOM 更新,您的 childNodes 或 Children 对象也会更新,这看起来是不是很明显?
从概念上讲,它们有何不同。
有没有办法让我迭代功能与 table.rows 类似的有序列表?我正在使用 JavaScript。
我问这个的原因是因为我有一个有序列表,其中包含另一个有序列表。我只想返回父列表项而不是子项。
<ol id="pList">
<li>Item A</li>
<li>
<ol id="cList">
<li>A's Child 1</li>
<li>A's Child 2</li>
</ol>
</li>
<li>Item B</li>
<li>Item C</li>
<li>Item D</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
我现在使用 getElementsbyTag 并返回所有 li,包括 cList 中的 li。我只想要 pList 中的那些。
谢谢
仅供参考:我更喜欢用 Javascript 完成。该代码必须在 Greasemonkey 中运行。我对 jquery 不太了解,也不是一个 javascript 程序员。
我有一个带有简单JavaScript函数的HTML表单,用于根据所选的选项将用户发送到不同的链接.
<form>
<select name="deliveryType">
<option value="123">Item 1</option>
<option value="456">Item 2</option>
<option value="789">Item 3</option>
</select>
<p><a href="javascript:void(0);" onClick="javascript:addToCart(this);">Submit</a>
<script>
function addToCart(t) {
var dT = t.parentNode.parentNode.childNodes[1].value;
alert(dT);
// location.href = "http://linkprefix.com/?variable=" + dT;
}</script>
</form>
Run Code Online (Sandbox Code Playgroud)
它按预期工作.该变量dT返回所选选项的值.
但是,如果<form>和之间没有换行符<select>,则dT返回undefined.不过,如果我更改childNodes[1]到childNodes[0]它,然后再工作.我不知道为什么会这样.我认为parentNode并且childNode基于HTML元素及其中的文本,而不是元素之间的换行符.如果我不得不猜测,换行符被视为文本节点,但这对我没有意义.那是怎么回事?有一个更好的方法吗?
javascript ×10
dom ×4
html ×4
nodes ×2
css ×1
document ×1
dom-node ×1
ecmascript-6 ×1
jquery ×1
parent-child ×1
svg ×1
vue.js ×1
w3c ×1
xml ×1
xmlnode ×1