Могу ли я иметь только один индекс из выбранного события клика?

У меня проблемы с редактированием и удалением выбранных записей. Я думаю, что это ложь, что я получаю только один индекс.

Как я выбираю вещи:

$("#liste").click(function selectList (event) {
        var target = $( event.target );
        if ( target.is( "li" ) ) {
            target.toggleClass('selected');
        }
    });

Проблема здесь:

$('.selected').attr("index");

Я получаю только первый индекс из выбранного элемента, но я хочу иметь все индексы для каждого выбранного элемента. По вопросам, связанным с этим вопросом, у меня есть специальная идея о функции редактирования или не стесняйтесь спрашивать!

1 ответ

Решение

attr() как вы говорите, вернет атрибут из первого элемента соответствующего набора. Если вы хотите, чтобы все index атрибуты из выбранных объектов, используйте map():

var indices = $('.selected').map( 
  function() {
    return $(this).attr('index');
  }
);

var indices = $('.selected').map(function() {
  return $(this).attr('index');
});

console.log(indices);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="selected" index="one"></div>
<div class="selected" index="two"></div>
<div index="three"></div>
<div class="selected" index="four"></div>
<div index="five"></div>

Другие вопросы по тегам