$('#jander*')
,$('#jander%')
,但是它不起作用。.我知道我可以使用元素的类来解决它,但是也可以使用通配符??
<script type="text/javascript">
var prueba = [];
$('#jander').each(function () {
prueba.push($(this).attr('id'));
});
alert(prueba);
});
</script>
<div id="jander1"></div>
<div id="jander2"></div>
#1 楼
要获取所有以“ jander”开头的元素,您应该使用:$("[id^=jander]")
要获取以“ jander”结尾的元素
$("[id$=jander]")
另请参见JQuery文档
评论
文档给出了以下示例:$('input [name ^ =“ news”]')。val('news here!')
–布伦登
2011-10-17 9:55
该代码按预期工作。无需使用双引号,这只会增加错过右引号的机会,并使可读性降低。
–nico
2012年7月8日在17:49
@nico有趣的是,文档说它可以与属性一起使用,而id从技术上来说是一个属性,但是我猜想是jquery的最新版本(即1.9)以及如何处理属性和属性的最新更改,这一行略相对于两者模糊不清,因此您可以将属性选择器用于(至少某些)属性。
– johntrepreneur
13年5月10日在21:14
如果我要选择所选的偶数,该怎么办。例如:如果我想做同样的事情,我目前拥有.col-lg-4:even div:nth-child(1)...我会写什么? “ [class ^ =。col-lg-]:偶”? (我似乎没有使它起作用)
–路易斯·罗伯斯(Luis Robles)
13年11月12日23:34
某些行为使我感到惊讶-如果我将其与“ class $ = ...”一起使用,它将搜索项目的类别列表,而不是各个类别的名称。因此,只有在搜索的类别是该项目的最后一个类别时,它才会命中。除了Chrome以外,没有测试过。而且不确定缺陷是在jQuery中还是在我对jQuery的期望中。
–罗杰·克鲁格(Roger Krueger)
16年8月7日在20:45
#2 楼
由于标题建议使用通配符,因此您也可以使用以下命令: $(document).ready(function(){
console.log($('[id*=ander]'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="jander1"></div>
<div id="jander2"></div>
这将在
id
中的任意位置选择给定的字符串。#3 楼
尝试jQuery开头-使用选择器'^ =',例如
[id^="jander"]
我必须问一下,为什么不想使用类呢?
评论
为了添加上下文,我正在寻找相同的解决方案,因为我使用的是Django,其Django的ModelForm类根据模型指示ID,并且似乎不允许进行此类分组。即HTML不在我的控制范围内。
–克里斯蒂安·曼(Christian Mann)
2012年6月12日在16:07
当使用ASP.Net WebForms,尤其是单选和复选框列表时,这很有用。
– DavidScherer
19年5月14日在21:36
#4 楼
对于您可以使用的类:div[class^="jander"]
评论
我无法使它工作,收到有关无效语法的消息。
– stian
13年2月28日在8:59
#5 楼
要从通配符匹配中获取ID: $('[id^=pick_]').click(
function(event) {
// Do something with the id # here:
alert('Picked: '+ event.target.id.slice(5));
}
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="pick_1">moo1</div>
<div id="pick_2">moo2</div>
<div id="pick_3">moo3</div>
评论
代替“ event.target.id”,它也可能起作用:$(this).attr(“ id”)
– PJ Brunet
2014年3月24日20:58在
#6 楼
如果您具有更复杂的ID字符串,则必须使用双引号。例如,如果您具有如下ID:
id="2.2"
,则访问它的正确方法是:$('input[id="2.2"]')
出于安全原因,请尽可能使用双引号。
评论
这是关于jQuery(或更确切地说是Sizzle引擎)的问题。只需注意:使用jQuery或Sizzle可以利用浏览器功能的类,这样做会更快(尽管对于现代浏览器来说应该没有太大的区别)。
JQuery选择器正则表达式的可能重复项
另外,需要注意的重要一点是$(“ [id * = jander]”)将选择ID包含字符串jander的所有元素。