2010-02-19 2 views
54

мой вопрос заключается в следующем:Найти HTML элемент, который идентификатор начинается с

У меня есть HTML-код в несколько страниц, на каждой из них я использовал JQgrid (JQuery сетки) для отображения некоторых данных. Я знал, что на каждой из этих страниц элемент, содержащий JQgrid, называется «LIST_xxx». Теперь мне нужно сделать javascript, который берет этот элемент «LIST_XXXX» на каждой странице и делает некоторые вещи. Как я мог искать элемент по идентификатору, но только зная его начальную часть (из ID, как я упоминал ранее):

$('#list_[XXXX]')... --> The part surrounded by [] is variable on each page, i want to discriminate that. 

Я надеюсь, что я сделал себе ясно. Благодарю.

ответ

110

Попробуйте

$('div[id^="list_"]') 

Он должен работать

+0

Гораздо лучше макет на эту ссылку, чем документация jquery. –

+0

Это хорошо работает ... Я использовал его, чтобы найти id, который заканчивается с определенным значением, например if ($ ('div [id $ = "' + val + '"]'). Length> 0) выполнить что-то; – raphie

+0

хорошо, его хорошо работает для более простых идентификаторов элементов управления. Как заставить его работать для сценариев, например, у меня есть элементы управления с такими идентификаторами «txt_0_city», «txt_1_city», «txt_2_city», «txt_3_city» и т. Д., И я хочу, чтобы количество всех таких элементов имело идентификаторы типа «txt _ * _ city» « –

7

Дайте этому элементу общее имя класса или какой-либо другой атрибут, который вы можете запросить.

+0

Привет, спасибо за ваш ответ, проблема с вашим предложением состоит в том, что может быть несколько таблиц с JQgrid, поэтому могут быть: «LIST_customer», «LIST_carrier» ... и так далее. И мне нужно выбрать оба из них только в начальной части идентификатора: «LIST_». – lidermin

+0

Я понимаю, но, делая их все, класс List кажется более читаемым и описательным подходом ко мне. Для каждого из них вы всегда можете использовать старты с селектором в jquery, как показано другими ответами. –

+0

@lidermin Что говорит Юрий, должно работать. Почему вы не добавляете класс к своим элементам управления, таким как «список», поскольку у вас есть list_ в качестве вашего префикса. поэтому, когда вы выберете этот класс, он получит каждый из этих элементов управления. Это будет самый эффективный способ сделать это. –

19

Вы должны использовать attribute starts with selector, как это:

$('[id^=list_]').whatever() 
+0

хорошо, его хорошо работает для более простых идентификаторов элементов управления. Как заставить его работать для сценариев, например, у меня есть элементы управления с такими идентификаторами «txt_0_city», «txt_1_city», «txt_2_city», «txt_3_city» и т. Д., И я хочу, чтобы количество всех таких элементов имело идентификаторы типа «txt _ * _ city» " –

+0

Привет @Rajiv, добро пожаловать в stackoverflow. Я ответил на другую копию вашего комментария. –

4

Используйте "атрибут начинается с" селектором http://api.jquery.com/attribute-starts-with-selector/

$("[id^=list_]") 

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

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