js - переключать идентификаторы элементов

0

Я хочу изменить 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.

  • 1
    Вы должны использовать классы. Идентификаторы не для такого рода вещей.
Теги:
element
attributes

3 ответа

2
attr({"id", sub[1]}); 

должно быть:

attr("id", sub[1]);

Хотя я согласен со всеми другими, возможно, лучший способ сделать это, используя атрибуты или имена классов.

Кроме того, если это обработчик события клика или какой-либо другой обработчик связанных событий, и в зависимости от того, как он связан, вы можете заменить:

if($(e.target).is("#"+sub[0]))

с

if($(this).attr(id) == sub[0])
  • 0
    $(e.target) не обязательно совпадает с $(this) .
  • 0
    правда, это зависит от того, как событие клика связано.
0

Я бы написал:

var a = document.getElementById('one');
var b = document.getElementById('two');
a.id = 'two';
b.id = 'one;
  • 1
    Не могли бы вы объяснить это немного?
0

классы для нескольких div (как в вашем случае), ID - только для одного div.

  • 0
    Но эти два div не существуют одновременно. Я сказал.
  • 0
    Даже тогда, ID нельзя использовать несколько раз, попробуйте использовать классы, это так же просто, как ID!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню