используя jQuery для обхода DOM - PullRequest
       31

используя jQuery для обхода DOM

0 голосов
/ 04 сентября 2018

С учетом следующего HTML DOM:

<div>
    <div>
        <input data-id="somevalue">
    </div>
    <div>
        <a href="">edit</a>
    </div>
</div>

Когда нажата кнопка редактирования, я хочу получить somevalue.

А) Буду ли я использовать .parent().parent().find() или есть более подходящее решение?
Б) Как бы я получить значение для data-select? Я знаю, как получить его по идентификатору или классу, но не знаю, какой синтаксис использовать для атрибутов данных.

Используя следующее:

var id = $(this).parent().parent().find().attr('id');<br> console.log(id);

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

1 Ответ

0 голосов
/ 04 сентября 2018

Вы можете использовать

$(this).parent().prev().children().data('id')

$('a').click(function(e) {
  e.preventDefault();
  console.log(
    $(this).parent().prev().children().data('id')
  );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
    <div>
        <input data-id="somevalue">
    </div>
    <div>
        <a href="">edit</a>
    </div>
</div>

Ваш .find() без аргументов не даст вам никаких результатов, потому что вы не передали ему селектор для поиска. Кроме того, атрибут не является id - атрибут data-id, поэтому вы должны использовать data('id') вместо attr('id').

...