查找以特定id开头的HTML元素

102

我的问题是:

我在多个页面中有HTML代码,在每个页面上,我都使用了一个JQgrid(jquery grid)来显示一些数据。我知道在这些页面的每一页中,包含JQgrid的元素名称为“LIST_xxx”。现在,我需要编写JavaScript代码,获取每个页面上名为“LIST_XXXX”的元素并对其进行处理。我该如何通过ID的初始部分(如前面提到的)搜索元素:

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

希望我表达清楚了。谢谢。

5个回答

192

尝试

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

它应该可以工作


参考文档的布局比jQuery文档好多了。 - Yuriy Faktorovich
很好,这个可以正常工作...我用它来寻找以特定值结尾的 ID,例如如果($('div[id$="'+val+'"]').length > 0),则执行某些操作; - raphie
好的,对于上面简单的控件ID,它可以正常工作。但是如何使其适用于具有这样的ID的控件场景:“txt_0_city”,“txt_1_city”,“txt_2_city”,“txt_3_city”等,并且我想要所有具有类似“txt_*_city”的元素的计数。 - Rajiv Bhardwaj
1
@ Rajiv 如果您可以控制 HTML,则最好为每个元素添加类似于“城市”的类。然后您可以轻松地对它们进行计数。 - Glen Little
@Rajiv 如果你不能改进HTML,那么可以查看https://api.jquery.com/multiple-attribute-selector/ - 你可以组合选择器。例如,$("span[id^='txt_'][id$='_city']") - Glen Little

26

好的,对于上述简单控件ID,它运行良好。如何使其适用于具有此类ID的控件场景,例如“txt_0_city”,“txt_1_city”,“txt_2_city”,“txt_3_city”等,并且我想要所有具有“txt_*_city” ID的元素的计数。 - Rajiv Bhardwaj
嗨@Rajiv,欢迎来到stackoverflow。我已经回复了你的另一条评论。 - Glen Little

8
给该元素一个通用的类名或其他可查询的属性。

你好,感谢你的回答。你的建议存在一个问题,就是可能有多个表格包含JQgrid,比如"LIST_customer"、"LIST_carrier"等等。我需要根据初始ID部分"LIST_"选择它们两个。 - lidermin
1
我理解,但是将它们全部作为List类似乎更易读和描述性。各有所好,你总是可以像其他答案中所示一样使用jQuery中的starts with选择器。 - Yuriy Faktorovich
@lidermin,Yuriy所说的应该有效。为什么不给你的控件添加一个类,比如“list”,因为你有 “list_”作为前缀。这样,当你选择该类时,它将获取每个控件。这将是最有效的方法。 - Josh Mein
Yuriy的答案是可行的。您可以将相同的类(例如“ListsINeedToFind”)添加到所有“LIST_XXXX”元素中,然后使用 $('.ListsINeedToFind') 查找它们。 - Annabelle
有时候需要具有相同类别但不同ID的多个元素。 - Vincent

5

3
获取以特定id/字符结尾的元素:
find('[id$=someid]')

获取以特定ID/字符开头的元素
find('[id*=anotherid]')

获取与特定id/字符匹配的元素
find('[id^=id]')

不起作用。每个语句都返回false。 - Amit Sharma
@AmitSharma 你能否在这里发布你的命令?你想查询什么? - Haroon Khalid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接