jquery set attr () входной объект

0

У меня есть приложение формы. Мне нужно получить доступ к входному объекту. Я не могу добавить этот атрибут.

я получаю ошибку:

Uncaught TypeError: свойство 'children' объекта # не является функцией scripts.js: 106 (анонимная функция) scripts.js: 106 x.event.dispatch jquery.js: 4597 y.handle

elm [6].children() = Not null

t [0].value = иметь значение.

$(".demo").delegate(".configuration .dropdown-menu button", "click", function (e) {
    e.preventDefault();
    var t = $(this).parent().children();

    var elm = t.parent().parent().parent().parent().parent().children().children();
    debugger;

    if (t[1].id == "Id") {
        elm[6].children().attr('id', t[0].value);
    }
})

Я могу видеть данные объекта ввода. Но я не могу добавить атрибут..

  • 0
    Пожалуйста, замените t.parent().parent().parent().parent().parent() t.closest("selector") . Ваш JS очень хрупок для малейшего изменения HTML. Также, вероятно, вам нужен t.closest("some selector").find("some other selector") так что вы не будете сильно кодировать определенные позиции HTML в своем JS.
  • 0
    совершенно верно! первое, что пришло на ум, было так. Спасибо за предложение. я попытаюсь.
Теги:

1 ответ

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

Используйте eq() вместо скобок, так как [6] обращается к базовому dom-узлу в массив-подобном объекте jQuery, а затем у вас больше нет объекта jQuery, который может быть прикован с помощью методов jQuery и т.д.

elm.eq(6).children().attr('id', t[0].value);

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

  • 0
    WOWW! Большое спасибо!

Ещё вопросы

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