javascript - 获取父 <div> 的子 <div> 的值

标签 javascript dom

<div id="parent">
    <div id="child">
        some-value
    </div>
</div>

我如何获得“一些值(value)”? 我试过了

var parent = document.getElementById("parent");
var child = parent.childNodes[0];
var childval = child.value;
document.getElementById("output").innerHTML=childval;

它输出“未定义”。

最佳答案

value属性只存在于表单元素中。如果你想获取任何其他元素的内容,你可以使用 innerHTML [MDN]以 HTML 字符串形式获取内容,或 textContent [MDN]分别 innerText [MSDN]只获取没有 HTML 标签的文本内容。

childNodes [MDN]返回所有 子节点,而不仅仅是元素节点。这意味着,它还包含例如文本节点<div id="parent"> 之后的换行符也是一个文本节点。因此,parent.childNodes[0]返回仅包含换行符的文本节点。

如果要获取第一个元素节点,可以使用 children [MDN] (参见 browser compatibility ),或遍历子节点,测试每个子节点是什么类型的节点。 1表示元素节点,3一个文本节点:

var child = parent.firstChild;

while(child && child.nodeType !== 1) {
    child = child.nextSibling;
}

还有其他方法可以获取元素,例如与 getElementsByTagName [MDN] .

或者在您的情况下,您可以只使用 getElementById [MDN]获取对这两个元素的引用。

关于javascript - 获取父 <div> 的子 <div> 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769158/

相关文章:

javascript - jQuery - 更改具有相同类名的特定文本的字体粗细

javascript - 从 DOM 元素中提取属性

javascript - 为什么这返回未定义而不是值?

javascript - 存储按钮点击数据的安全方法

asp.net - firefox 和 opera 不兼容的浏览器

javascript - Google map API - 标记聚类不起作用

javascript - Nodejs 的事件驱动异步回调

javascript - Onclick 事件未触发(这太基本了,我要疯了吗?)

javascript - 将此(对象)传递到对象方法之一嵌套方法

javascript - 如何判断 jQuery 节点是否位于其父节点的开头?