var g = document.getElementById('my_div');
for (var i = 0, len = g.children.length; i < len; i++)
{
(function(i){
g.children[i].onclick = function(){
$('.galao')[i].attr('id','selectedGalao');
}
})(i);
};
所以,我试图通过他的类和索引位置获取一个元素,这样我就可以添加一个我使用的id。问题是浏览器返回我:
Uncaught TypeError: Cannot read property 'attr' of undefined at HTMLDivElement.g.children.(anonymous function).onclick
我该如何解决?
修改
代码实际上是这样的:
var g = document.getElementById('my_div');
for (var i = 0, len = g.children.length; i < len; i++)
{
(function(index){
g.children[i].onclick = function(){
$('.galao')[index].attr('id','selectedGalao');
}
})(i);
};
答案 0 :(得分:2)
这样:
var g = document.getElementById('my_div');
for (var i = 0, len = g.children.length; i < len; i++)
{
(function(){
g.children[i].onclick = function(){
$($('.galao')[i]).attr('id','selectedGalao');
}
})(i);
};
jquery数组中的元素不是jquery对象,所以你需要使它们成为jquery对象,在它们上面使用jquery函数
答案 1 :(得分:0)
如果您正在使用jQuery,请正确使用它,它将优化您的代码:
$('#my_div').children().click(function() {
$('.galao').eq(i).addClass('selectedGalao');
})
使用类selectedGalao
而不是id
作为id的另一个建议必须是唯一的,如果多个元素可以获得相同的selectedGalao
id,那么这是不正确的。
答案 2 :(得分:0)
尝试这样的事情:
var g = $('#my_div');
for (var i = 0; i < g.children.length; i++) {
g.children()[i].on('click', function () {
$('.galao')[i].attr('id','selectedGalao');
});
};