很久以前,这段代码在IE下使用标准JS / HTML,但现在这个函数返回“undefined”。为什么这不起作用?上次我检查代码时,我知道10年前的IE60。所以我猜它与新浏览器/ html5有关系。访问HTML元素中的属性(在本例中为输入)以获取它的值并通过该函数传递它的最佳实践是什么?
<html>
<body>
<input type="button" tipo="MA" onclick="alert(this.tipo);">
</body>
</html>
解决方案:
就像有人评论过,我必须使用HTML5。所以我试图提交,我得到了:
<input type="button" data-tipo="MA" onclick="alert(this.dataset.tipo);">
提前致谢。
答案 0 :(得分:2)
鲁
如果您不想定义全局变量并坚持使用内联js,您可以执行以下操作:
onclick="alert(this.getAttribute('tipo'))
getAttribute()函数返回具有特定名称的属性。
现在使用data- *属性非常普遍,其中“*”可以替换为您想要的名称:
<element data-name="Ruben">
要了解更多相关信息,我建议您阅读以下内容: https://www.w3schools.com/tags/att_global_data.asp
希望它有所帮助。
答案 1 :(得分:1)
试试这个:
<html>
<body>
<input type="button" value="MA" onclick="alert(this.value);">
</body>
</html>
答案 2 :(得分:1)
试试这个:
<html>
<body>
<input type="button" tipo="MA" onclick="alert(this.getAttribute('tipo'));">
</body>
</html>
&#13;
答案 3 :(得分:1)
它不起作用,因为this.tipo
您正在阅读HTMLInputElement的属性,而不是属性。那些是不同的东西。
如果您想要使用属性
this.getAttribute('tipo')
属性用于不同的目的,通常不会转换为具有相同名称的属性。但是,某些属性会映射到相应的属性。示例可以是value
,disabled
。
以下是如果您在阅读之前设置,属性如何工作的演示:
const input = document.querySelector('input')
input.tipo = 'I am a property'
&#13;
<input type="button" tipo="MA" onclick="alert(this.tipo);">
&#13;
答案 4 :(得分:0)
这是因为JavaScript不会说您的语言,只会说某种英语 试试这个:
<html>
<body>
<input type="button" tipo="MA" onclick="alert(this.type);">
</body>
</html>