Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JQuery: как выбрать по id в переменной (https://javascript.ru/forum/misc/50727-jquery-kak-vybrat-po-id-v-peremennojj.html)

kostyanet 09.10.2014 08:14

JQuery: как выбрать по id в переменной
 
ID искомого элемента находится в name полученного элемента. На js было так

var rel=document.getElementById(elem.name);


на JQ я вычитал надо так

var rel=$('#'+elem.name);
console.log(rel);


В консоли печатается пустой jq-объект. Что еще надо приделать или отделать чтобы получить искомое?

kostyanet 09.10.2014 08:30

Может имеет значение какое оно name? Оно вот такое, например

user[0]

voral 09.10.2014 08:34

Вообщето id и name это разные аттрибуты/свойства элементов у вас какаято путаница с наименованиями. Потому на примере:
<input id="myid" name="myname">
....
var pElem = document.getElementById('myid');
var jElem =$('#myid');

voral 09.10.2014 08:39

Если же надо по имени
var nElem = $('input[name=myname]');

kostyanet 09.10.2014 08:44

Еще раз, ибо товарищ voral все запутал.

Есть элемент у которого есть имя. Задача. Надо взять это имя и найти _другой_ элемент у которого ID идентичен тому самому имени.

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

Внезапно вылазит вот такой вот косяк - что я не могу получить реф на элемент когда его id (я так понимаю проблема именно в этом) выглядит вот так

user[0]

С какого это хрена? ID может быть тотально любым, даже числом если вы кладете на спецификацию, а уж всякие там скобки вообще никого не колебут кроме сервера.

kostyanet 09.10.2014 08:45

Сейчас я, конечно, сделал вот так, то есть чережопу:

var rel=$('#'+elem.name);
			console.log(rel);
			var rel=document.getElementById(elem.name);
			if(rel)
				$elem=$(rel);


А как сделать нормально?

kostyanet 09.10.2014 08:48

В консоли (с места по тексту выше) пишут вот что

Object { length: 0, prevObject: Object, context: HTMLDocument → person, selector: "#user[0]" }

где мой инпут по ид?

kostyanet 09.10.2014 08:55

Короче я сам нашел. Как обычно в такого рода либах всегда есть оборотная сторона покрытая толстым слоем кала. Хорошо что я еще мало чего переписал на jquery. И не буду.

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

kostyanet 09.10.2014 09:13

Рулез на синтаксис id http://www.w3.org/TR/html5/dom.html#the-id-attribute

voral 09.10.2014 10:19

Цитата:

Сообщение от kostyanet (Сообщение 334219)
Пиндеж!

А с чего вы взяли, что в вашем случае должен использоваться getElementById? Вы создали неправильный селектор и хотите чтоб скрипт его правильно (в вашем понимании) распарсил?


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