javascript - 检查 DOM 元素类型/属性以将值分配给 innerHTML 或值

标签 javascript

我想查询选定容器中的所有内容。

container = document.querySelector('[data-container]')

我还有一个包含值的变量

如果子元素有一个value属性(比如inputs)

child.value = variable

如果不是,像 'p', 'div' 使用:

child.innerHTML = variable

如何检查元素/类型属性?

我需要一个标签一个标签地检查,还是更一般的东西?

最佳答案

您可以使用更通用的东西:in:它检查对象(或其原型(prototype))上是否存在属性:

if ("value" in element) {
    // use value
} else {
    // Use innerHTML or textContent, etc.
}

例子:

var container = document.querySelector("[data-container]");
var children = container.children;
for (var n = 0; n < children.length; ++n) {
  var element = children[n];
  var hasValue = "value" in element;
  console.log(element.tagName, hasValue ? "has value" : "doesn't have value");
}
<div data-container>
  <p>Paragraph</p>
  <input type="text">
</div>

关于javascript - 检查 DOM 元素类型/属性以将值分配给 innerHTML 或值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51704644/

相关文章:

javascript - 读取拖放文件

javascript - HTML 和 CSS 更改整个网页上的日期格式

javascript - 跟踪隐藏的 div

javascript - 在 GAE 上的 Go 中显示由 html/template 产生的换行符

location.hash 的 Javascript 正则表达式匹配

javascript - 如何使用keyup计算总价和总计

javascript - 如何简化 JavaScript/ECMAScript 数组文字的生成?

javascript - `new Object()` 和对象字面量表示法有什么区别?

javascript - 如何在没有 ID (Java) 的 Selenium 中单击 Javascript 按钮?

javascript - 使用js延迟函数时使用ISSET验证表单