Есть ли индексный номер для использования при использовании jQuery для соответствующего набора элементов DOM?

0

Мне интересно, есть ли индекс, который следует использовать при использовании jQuery для управления DOM.

Например, могу ли я сделать что-то вроде

$("#elements a").css('id','element-'+index);

Итак, чтобы повернуть

<div id="elements">
  <a href="#"></a>
  <a href="#"></a>
  <a href="#"></a>
</div>

в

<div id="elements">
  <a id="element-1" href="#"></a>
  <a id="element-2" href="#"></a>
  <a id="element-3" href="#"></a>
</div>
  • 1
    .css('id','element-'+index); Почему вы даже используете метод css ?
Теги:

4 ответа

6
Лучший ответ

если вы хотите установить атрибут id, то вам нужен пользователь .attr()

$("#elements a").attr('id',function(index){
    return 'element-'+ (index + 1)
});

Демо: скрипка

1

Метод Arun будет работать очень хорошо, но так будет и это кажется немного проще в концепции, потому что .each() передает обратный вызов индекс элемента, который он перечисляет, поэтому вы можете использовать это непосредственно, чтобы просто присвоить значение id:

$("#elements a").each(function(index) {
    this.id = 'element-'+ (index + 1);
});

Или, если вы пытаетесь просто ссылаться на 3-й элемент без назначения идентификатора раньше времени, вы можете сделать это вот так:

$("#elements a").eq(2).css("color", "red");
0

делай это так..

var i=1;    
$("#elements a").each(function(){
      $(this).attr("id","element-"+i);
       i++;
});
  • 2
    Прежде всего, .each может передавать index прямо в функцию, так зачем использовать другую переменную для этого?
  • 0
    йух! верно :) . Спасибо
Показать ещё 4 комментария
-1

Вы пытаетесь получить доступ к определенному элементу привязки на основе последнего номера в ID? Если это так, просто пропустите элементы, возвращаемые $("#elements").find('a') и проверьте идентификатор на что-то. Как это:

var d = document.createElement('div');
var search = 1;
d.id = "elements";
d.innerHTML = '<a id="element-1" href="#"></a> <a id="element-2" href="#"></a> <a id="element-3" href="#"></a>';

$(d).find('a').each(function (index, item) {
    if (parseInt(item.id.split('-')[1]) == search)
        alert("got it");
});

Ещё вопросы

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