JS在循环中使用name
JS use name in loop
我已经尝试了很多次,但都没有效果:
在循环中,我想使用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
div
元素没有name
属性,您需要使用elem.getAttribute('name')
来访问非标准属性。
HTML根本没有country
标签,所以它们也没有name
属性。所以你还是需要使用getAttribute
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'));
}
}
演示div标签不能有name属性,使用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);
如果你仍然想使用name,那么:
elem.getAttribute('name')
为了获取name属性,你需要使用。getattribute
function jat()
{
var cls = document.getElementsByClassName("country_events");
for (n=0; n < 4; n++)
{
var elem = cls[n];
alert(elem.getAttribute("name"));
}
}
jsfiddle
如果你阅读文档,它说JavaScript element.name
只适用于以下元素,不包括div
:
<a>, <applet>, <button>, <form>, <frame>, <iframe>, <img>, <input>, <map>, <meta>, <object>, <param>, <select>,<textarea>
另外,不要忘记在你的for
循环声明中使用var
,否则你会用变量污染全局命名空间:
for (var n = 0; n < 4; n++) {
http://jsfiddle.net/LQRhe/相关文章:
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 如何在下面的ES6循环中获得前面的文本
- 为什么“;未定义的“;在JavaScript中结束循环
- Javascript循环不会自我更新
- 如何使用jquery处理php循环通过元素
- 而循环只设置php中输入字段中的第一个值
- 循环遍历数组中的特定索引
- Javascript返回值只在循环中返回一次
- 按照选项卡索引的顺序循环一个jQuery选择
- 循环遍历以数组为值的Javascript对象
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 循环结束/推送到数组之前在页面上呈现EJS
- 循环比赛位置算法
- jQuery循环在特定位置暂停
- 我的javascript for循环不起作用
- 循环浏览多个身体背景图像
- 在for循环的var name中使用i
- JS在循环中使用name