2017-02-10 8 views
0

расслоения плотного Я присвоенное значении идентификатора элемента в angularjs переменного, как показано нижеПолучить идентификатор элемента в угловых

var test = angular.element("#sqldiv"); 

Я посылаю переменный тест на функцию и хотел использовать id элемента в функции. Я не могу получить значение id. когда я пытаюсь поставить предупреждение для теста. он просто дает [object, Object] как output.Please, дайте мне знать, как получить значение id элемента. i.e Я хотел, чтобы значение было "#sqldiv".

Любая помощь по этому поводу очень ценится. Заранее спасибо.

+0

'test [0] .id', но, пожалуйста, объясните ваш usecase. Похоже, вы делаете что-то неувядающее. – devqon

+2

Похоже, вы пытаетесь сделать что-то, что может быть сделано намного чище - элементы управления напрямую - это почти всегда неправильная вещь в Angular. Вместо этого используйте привязку данных. – LionC

ответ

1

попробовать это

test[0].id 

Это даст вам id элемента.

+0

Хотя это правильно, я настоятельно рекомендую ответить на этот вопрос, не сообщив OP, чтобы он не пропускал элементы DOM вокруг в Angular, поскольку они, похоже, новы к нему. – LionC

1

Угловой jQlite работает как jQuery с небольшим ограничением возможностей, чтобы обеспечить хорошую производительность, чтобы вы могли использовать метод jQuery $.fn.attr, чтобы сделать такую ​​вещь.

Например:

var elm = angular.element(document.getElementById("#sqldiv")); 

console.log(elm.attr('id')); 

Примечание на angular.element: селектору ограничены, так что вы не можете запросить по идентификатору, как это, вы должны пройти элемент он сам, чтобы jQlite как: angular.element(document.getElementById("#sqldiv")) или angular.element(document.querySelector("#sqldiv"))

Примечание об использовании DOM с угловой: Как это было сказано на комментарии, избегать использования DOM для связывания данных, angularjs имеет свой собственный способ сделать это, мо Эта операция не требует манипуляций с DOM, вы должны создать директиву для выполнения такой задачи, когда у вас есть соответствующий способ ее обработки.

+1

Хотя это правильно, я настоятельно рекомендую ответить на этот вопрос, не сообщив OP, чтобы он не пропускал элементы DOM вокруг в Angular, поскольку они, похоже, новы к этому. – LionC

+1

@ LionC запрет на передачу элементов DOM в зависимости от того, что вы пытаетесь сделать, я не могу сказать, создает ли он директиву компонента или просто пытается отобразить текстовую переменную. Но вы правы, но я должен был добавить к этому заметку, и я это сделаю. Спасибо: {D –

+1

Правда, есть случаи, когда это необходимо. Но большинство из них уже решены существующими директивами структурирования, и я бы сказал, что 95% случаев, когда кто-то, кто знаком с Angular, просит об обработке элементов DOM, им нужно сказать, чтобы это не делалось :-) – LionC

Смежные вопросы