gpt4 book ai didi

javascript - 如何设置任何 DOM 元素的显示值?

转载 作者:行者123 更新时间:2023-11-28 03:20:16 25 4
gpt4 key购买 nike

有时我想更新一个随机 DOMNode 的值,但我真的不知道它是什么类型的元素。我假设我需要一些代码块来检查它是什么类型的节点。

if(el.tagName == 'input' ) el.value = "foo";
if(el.tagName == 'div') el.innerHTML = "foo";

或者即使某些属性存在:

var value = "foo";

if(el.value != "undefined" && el.value != value) {
el.value = value;
}

if(el.innerHTML != "undefined" && el.innerHTML != value) {
el.innerHTML = value;
}

电子.nodeType确实列出了几种基本类型,但它们只是基本节点类型。

更新任何类型的元素显示的最佳方式是什么?

更新:@dfsq 有个好主意。

el["value" in el ? "value" : "innerHTML"] = value;

但是,它似乎不适用于任何元素:

["value" in document.createElement('li')] // true

更新 2 严格的类型检查可能是一个解决方案:

document.createElement('input').value
""
document.createElement('li').value
0
document.createElement('div').value
undefined
document.createElement('textarea').value
""

注意:没有 jQuery 解决方案,除非您想指出 how jQuery does it

最佳答案

似乎对 el.value 进行类型检查是可行的方法:

var els = ['p', 'div', 'li', 'a', 'input', 'textarea'];
for (var i in els) {
var el = document.createElement(els[i]); el.value = 'foo'; console.log(el.value);
}

jsfiddle

el[typeof el.value === "string" ? "value" : "innerHTML"] = value;

关于javascript - 如何设置任何 DOM 元素的显示值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24832876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com