Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не находится существующий элемент (https://javascript.ru/forum/jquery/72478-ne-nakhoditsya-sushhestvuyushhijj-ehlement.html)

CrazyDev 31.01.2018 22:31

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

суть такая:
элемент - input
console.log($('.name').is('#' + vencode)); - возвращает true, а
console.log($('.name#' + vencode).val()); - возвращает undefined

более того, другой элемент с подобным обращением возвращает своё значение.. все классы и id уже 10 раз перечитал...

кто может помочь отзовитесь. заранее спасибо!!

j0hnik 31.01.2018 23:24

а можно увидеть скрипт?

CrazyDev 31.01.2018 23:44

это первый этап скрипта. определение данных.. далее будет ajax.

выглядит так:

var data = {
vencode: $('.vencode#' + vencode).val(),
name: $('.name#' + vencode).val()
};

в итоге на сервер уходит data = {
vencode: 'значение',
name: undefined
};

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

рони 01.02.2018 00:07

CrazyDev,
а нельзя id убрать или сделать разным?

рони 01.02.2018 00:08

Цитата:

Сообщение от CrazyDev
оба dom элемента определяются как существующие

как вы это оределили?

CrazyDev 01.02.2018 00:12

Цитата:

Сообщение от рони (Сообщение 476754)
CrazyDev,
а нельзя id убрать или сделать разным?

id убрать нельзя т.к. на странице отображены несколько уникальных товаров и id важен.

они и так разные. вложены в переменную vencode из обращения должно быть видно..

CrazyDev 01.02.2018 00:13

Цитата:

Сообщение от рони (Сообщение 476755)
как вы это оределили?

на метод .is() оба возвращают true

рони 01.02.2018 00:18

CrazyDev,
Цитата:

Сообщение от CrazyDev
они и так разные. вложены в переменную vencode из обращения должно быть видно..

Цитата:

Сообщение от CrazyDev
var data = {
vencode: $('.vencode#' + vencode).val(),
name: $('.name#' + vencode).val()
};

не могу это совместить

CrazyDev 01.02.2018 00:41

Цитата:

Сообщение от рони (Сообщение 476758)
CrazyDev,


не могу это совместить

действительно сам затупил..

CrazyDev 01.02.2018 00:47

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

благодаря советам старших было установлено, что в подобных случаях лучше использовать атрибуты data. если брать конкретный пример, то обратиться к нему можно так: $('.name[data-id="значение"').val();

спасибо за помощь j0hnik!!!))))


Часовой пояс GMT +3, время: 17:11.