Я хочу изменить 2 div ids.
val = [
["one","two"],
["two","one"]
];
sub = [];
for(i in val)
{
sub = val[i];
if($(e.target).is("#"+sub[0]))
{
$("#"+sub[0]).attr({"id", sub[1]});
}
}
Эти два divs не существуют одновременно. Но этот код по-прежнему не работает. Что с этим не так?
//Редактировать
Я тестировал класс. И это все еще не работает. Что происходит?
Я также тестировал с удаленным предложением каждого цикла. И это сработало, но только с самым первым значением val.
attr({"id", sub[1]});
должно быть:
attr("id", sub[1]);
Хотя я согласен со всеми другими, возможно, лучший способ сделать это, используя атрибуты или имена классов.
Кроме того, если это обработчик события клика или какой-либо другой обработчик связанных событий, и в зависимости от того, как он связан, вы можете заменить:
if($(e.target).is("#"+sub[0]))
с
if($(this).attr(id) == sub[0])
$(e.target)
не обязательно совпадает с $(this)
.
Я бы написал:
var a = document.getElementById('one');
var b = document.getElementById('two');
a.id = 'two';
b.id = 'one;
классы для нескольких div (как в вашем случае), ID - только для одного div.