我已多次尝试但没有任何作用:
在循环中,我想使用name
或id
属性,但它们不起作用。
var tag[] [number]
不起作用。它只打印undefined
一次。
我想这是一个外部问题。
<html>
<head>
<script type="text/javascript">
function jat()
{
var cls = document.getElementsByClassName("country_events");
for (n=0; n < 4; n++)
{
var elem = cls[n];
document.write(elem.name);
}
}
function jat2()
{
var cls = document.getElementsByTagName("country");
for (n=0; n < 4; n++)
{
var elem = cls[n];
document.write(elem.name);
}
}
</script>
</head>
<body>
<div class="country_events" name="a"></div>
<div class="country_events" name="b"></div>
<div class="country_events" name="c"></div>
<div class="country_events" name="d"></div>
<div class="country_events" name="e"></div>
<country class="country_events" name="a"></country>
<country class="country_events" name="b"></country>
<country class="country_events" name="c"></country>
<country class="country_events" name="d"></country>
<country class="country_events" name="e"></country>
<input type="button" value="1" onclick="jat()"></button>
<input type="button" value="2" onclick="jat2()"></button>
</body>
</html>
这两个功能仅打印undefined
。
答案 0 :(得分:2)
div
个元素没有name
属性,您需要使用elem.getAttribute('name')
来访问非标准属性。
HTML根本没有country
标记,因此它们也没有name
属性。所以你需要再次使用getAttribute
。
通常,您不应向HTML元素添加自定义属性。名为data-XXX
的属性保留给用户,您应该使用这些属性。
function jat() {
var cls = document.getElementsByClassName("country_events");
for (n = 0; n < 4; n++) {
var elem = cls[n];
console.log(elem.getAttribute('name'));
}
}
function jat2() {
var cls = document.getElementsByTagName("country");
for (n = 0; n < 4; n++) {
var elem = cls[n];
console.log(elem.getAttribute('name'));
}
}
答案 1 :(得分:0)
div标签不能包含名称属性,请改用 id
<div class="country_events" id="a"></div>
<div class="country_events" id="b"></div>
<div class="country_events" id="c"></div>
<div class="country_events" id="d"></div>
<div class="country_events" id="e"></div>
document.write(elem.id);
如果您仍想使用名称:
elem.getAttribute('name')
答案 2 :(得分:0)
要获取'name'属性,您需要使用.getAttribute
function jat()
{
var cls = document.getElementsByClassName("country_events");
for (n=0; n < 4; n++)
{
var elem = cls[n];
alert(elem.getAttribute("name"));
}
}
答案 3 :(得分:0)
如果您阅读the documentation,则表示JavaScript element.name
仅适用于以下不包含div
的元素:
<a>, <applet>, <button>, <form>, <frame>, <iframe>, <img>, <input>, <map>, <meta>, <object>, <param>, <select>,<textarea>
另外,不要忘记在var
循环声明中使用for
,否则您将使用变量污染全局命名空间:
for (var n = 0; n < 4; n++) {