Как выбрать значение определенного текстового поля, когда все они имеют одинаковое имя класса - PullRequest
0 голосов
/ 09 мая 2019

У меня есть таблица, которая генерируется с использованием foreach в PHP (Laravel).Таблица имеет 3 столбца: «Имя», «Заметки» и «Деактивировать».Деактивировать - это выбор с опциями «Активировать и« Неактивен ». Столбец« Имя »состоит из поля ввода текста с class=name. Опция« Деактивировать »имеет класс edit_cat.

* 1004.*

Когда я выбираю опцию из столбца 3 «деактивировать», мой JQuery также должен получить текстовое значение «category_name» в первом столбце.

Я перепробовал все, что могу найти вJQuery API и здесь, в SO. Я использовал closest и find, с input:text .name ИЛИ, td.name или дюжиной других перестановок. Но я получаю только undefined назад или ошибку.

 $(".edit_cat").on("change", function () {
       var value =  $(this).closest(".name-input").val();
       console.log(value);
    });

Что я делаю не так? Большое спасибо!

1 Ответ

1 голос
/ 10 мая 2019

var value = $(this).closest("tr").find("td .name").val();

Ты почти понял, приятель.

  1. Используйте ближайший, чтобы найти ближайшего родителя, потому что входные данные - просто брат.
  2. Вам нужно указать ближайший родительский элемент tr, а затем найти конкретный вход.

ближайший ()

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

...