window.onload = function(){
var inputElement = document.getElementsByTagName('input');
console.log(inputElement);
console.log(inputElement.hasAttribute('placeholder'));
if(inputElement.hasAttribute('placeholder')){
console.log('true');
}
};
我一直在window.onload上得到一个TypeError。有人指出这是错误的,我试图检查输入元素是否具有占位符属性
答案 0 :(得分:0)
document.getElementsByTagName
返回一个数组或节点列表或其他任何需要访问其元素的内容。您要尝试做的是在列表中运行hasAttribute
,这显然没有这样的功能。
你想要的是
var inputElement = document.getElementsByTagName('input')[0];
如果没有输入元素,这将抛出没有0
索引或其他内容的错误
答案 1 :(得分:0)
如果您确实需要收集所有输入并查找占位符,请循环浏览您在inputElement
中收集的输入并检查每个输入。
我建议这样的事情(不过,我还建议在日志中指出哪些输入对占位符测试为正;)):( / p>
window.onload = function() {
var inputElements = document.getElementsByTagName('input');
for (i = 0; i < inputElements.length; i++) {
if (inputElements[i].hasAttribute('placeholder')) {
console.log('true');
}
}
};
如果您需要访问特定的一个,那么您将不得不找出一种方法来唯一地标识input
(例如,使用id
属性)。然后你可以使用你正在尝试的方法:
window.onload = function() {
var inputElement = document.getElementById('some_id_value');
if (inputElement.hasAttribute('placeholder')) {
console.log('true');
}
else {
console.log('false');
}
};