jQuery选择器中的通配符

zii*_*web 641 jquery jquery-selectors sizzle

我正在尝试使用通配符来获取id以"jander"开头的所有元素的id.我试过了$('#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>
Run Code Online (Sandbox Code Playgroud)

nic*_*ico 1222

要获得以"jander"开头的所有元素,您应该使用:

$("[id^=jander]")
Run Code Online (Sandbox Code Playgroud)

以"jander"结束那些

$("[id$=jander]")
Run Code Online (Sandbox Code Playgroud)

另请参阅JQuery文档

  • 文档给出了这个例子:`$('input [name ^ ="news"]').val('news here!')` (22认同)
  • 代码按预期工作.没有必要加双引号,只是增加了错过结束语的可能性,并使其可读性降低. (5认同)
  • @nico有趣的是,文档说它适用于**属性**和`id`在技术上是**属性**,但我想最新版本的jquery(即1.9)以及最新的更改如何属性和属性都是hanlded,相对于两者来说线条稍微模糊,因此您可以使用属性选择器(至少某些)属性. (4认同)

Mar*_*idt 113

由于标题建议使用通配符,您也可以使用:

$(document).ready(function(){
  console.log($('[id*=ander]'));
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="jander1"></div>
<div id="jander2"></div>
Run Code Online (Sandbox Code Playgroud)

这将在中的任何位置选择给定的字符串id.


Goa*_*ine 37

尝试使用jQuery启动

选择器,'^ =',例如

[id^="jander"]
Run Code Online (Sandbox Code Playgroud)

我不得不问,为什么你不想用类做这个?

  • 要添加上下文,我正在寻找相同的解决方案,因为我正在使用Django,其ModelForm类根据模型指定ID,并且似乎不允许像这样分组; 即HTML不受我的控制. (2认同)

l3t*_*hal 34

对于您可以使用的课程:

div[class^="jander"]
Run Code Online (Sandbox Code Playgroud)


PJ *_*net 13

要从通配符匹配中获取id:

$('[id^=pick_]').click(
  function(event) {

    // Do something with the id # here: 
    alert('Picked: '+ event.target.id.slice(5));

  }
);
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

  • 这可能也有效,而不是"event.target.id":$(this).attr("id") (2认同)

小智 10

当您有一个更复杂的id字符串时,双引号是必需的.

例如,如果你有这样的id:,id="2.2"访问它的正确方法是:$('input[id="2.2"]')

出于安全原因,尽可能使用双引号.