javascript - 检查 DOM 元素类型/属性以将值分配给 innerHTML 或 value
问题描述
我想查询选定容器中的所有内容。
container = document.querySelector('[data-container]')
我也有一个variable
包含一个值的。
如果子元素具有value
属性(如输入)
child.value = variable
如果没有,像 'p'、'div' 使用:
child.innerHTML = variable
如何检查元素/类型属性?
我需要逐个检查标签,还是更一般的东西?
解决方案
您可以使用更通用的东西in
::它检查对象(或其原型)上是否存在属性:
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>
推荐阅读
- python - 如何防止 input() 提示打印两次并计算正确答案?
- opencv - 有没有办法将颜色表示为单个值?
- sql - T-SQL:有条件地设置一个变量
- excel - VBA:在新工作表上创建数据透视表
- e-commerce - 是否可以从网站的虚拟目录中访问产品列表?(不是其默认目录)[Virto Commerce]
- gitlab - Gitlab CI/CD 和 Nx 受影响:构建
- c# - 我应该如何在结构数组上运行 rle 算法?
- json - 使用 T-SQL 将 JSON 转换为表
- ionic-framework - 在 ionic 4 Modal 中使用 ion-nav-push/pop
- c# - 如何检索复选框列表的值?我使用数组 c# 添加了值