使用 javascript 为每个项目设置属性
Set attribute for each item with javascript
我想为列表中的每个项目添加一个属性。我目前有以下不起作用。当我在 for 循环之外的控制台中输出我的 var 长度时,它似乎输出了正确的数字。但是,当我尝试在 for 循环中应用属性时,它不起作用,因为长度似乎不起作用?我在这里做错了什么? 如何改进这一点,以便我可以将属性应用于列表中的每个项目?
控制台.log
test1 length || 3
test2 length || 3
test1||0
TypeError: this.setAttribute is not a function
var test1 = document.getElementById('test1').getElementsByTagName('a');
var test2 = document.getElementById('test2').getElementsByTagName('div');
console.log('test1 length || ' + test1.length);
console.log('test2 length || ' + test2.length);
for (var i = 0; i < test1.length; i++) {
console.log('test1||' + i);
this.setAttribute('title', 'test1' + i);
}
for (var i = 0; i < test2.length; i++) {
console.log('test2||' + i);
this.setAttribute('title', 'test2' + i);
}
<div id="test1">
<a href="#">link 1</a>
<a href="#">link 2</a>
<a href="#">link 3</a>
</div>
<div id="test2">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
你
已经把测试作为一个数组,循环遍历它,你可以用test[i]引用那个特定的项目。
这将引用窗口对象。
取代
this.setAttribute('title', 'test1' + i);
跟
test[i].setAttribute('title', 'test1' + i);
test2 也是如此。
工作输出如下
var test1 = document.getElementById('test1').getElementsByTagName('a');
var test2 = document.getElementById('test2').getElementsByTagName('div');
console.log('test1 length || ' + test1.length);
console.log('test2 length || ' + test2.length);
for (var i = 0; i < test1.length; i++) {
console.log('test1||' + i);
test1[i].setAttribute('title', 'test1' + i);
}
for (var i = 0; i < test2.length; i++) {
console.log('test2||' + i);
test2[i].setAttribute('title', 'test2' + i);
}
<div id="test1">
<a href="#">link 1</a>
<a href="#">link 2</a>
<a href="#">link 3</a>
</div>
<div id="test2">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
你在这里没有this
this.setAttribute('title', 'test2' + i);
您需要将其更改为
test1[i].setAttribute(...
和
test2[i].setAttribute(...
加工:
var test1 = document.getElementById('test1').getElementsByTagName('a');
var test2 = document.getElementById('test2').getElementsByTagName('div');
console.log('test1 length || ' + test1.length);
console.log('test2 length || ' + test2.length);
for (var i = 0; i < test1.length; i++) {
console.log('test1||' + i);
test1[i].setAttribute('title', 'test1' + i);
}
for (var i = 0; i < test2.length; i++) {
console.log('test2||' + i);
test2[i].setAttribute('title', 'test2' + i);
}
相关文章:
- 在BootStrap菜单栏中为所选项目设置背景,类似于BootStrap中的父导航选项
- 如何在NativeScript中从列表中删除项目时设置动画
- 谷歌图表堆叠柱状图.如何设置每个单独堆叠项目(数据系列)的样式
- 设置单击项目符号导航后不起作用的间隔
- 在 JavaScript 对象中添加子对象时获取“无法设置未定义的属性'项目'”
- 获取项目的顺序 jQuery 可排序并设置它们的顺序
- 如何在Javascript中设置随机生成的项目列表的样式
- 是否可以设置柔盒插入、移除和项目位置的动画
- 用Javascript将焦点设置在select元素上会将第一个项目滚动到视图之外
- 在owlCarousel中设置活动项目
- Angular 2 和 NodeJS 项目设置
- 使用 javascript 为每个项目设置属性
- AngularJS指令在ng-repeat中为每个项目设置不同的值,只重复一次
- angularjs i18n项目设置
- 为Javascript项目设置实习生
- Onsen-ui:将旋转木马项目设置为0(带旋转木马列表的滑动菜单菜单)
- Aurelia项目设置有开箱错误,修复方法是什么?
- Sencha Touch -为一组项目设置属性
- 在jQuery中为特定ID或整个项目设置“无默认排序”(“aaSorting”:[])
- 为javascript项目设置jshint和travis-ci