帮助jquery选择器

时间:2011-09-19 13:41:54

标签: javascript jquery jquery-selectors

我有这样的表单元素:

<input type='text' id='person_1_name'>
<input type='text' id='person_2_name'>
<input type='text' id='person_3_name'>
<input type='text' id='person_4_name'>
<input type='text' id='person_5_name'>
..
..
..

我可以选择这样的单个元素:

$("#person_1_name").focusout( function() {

   alert("Hello World");

});

是否有任何选择器选择所有元素(person_&lt; *&gt; _name)而不单独描述它们?

由于

7 个答案:

答案 0 :(得分:3)

这不是正确的方法。

您应该为每个元素添加Class,然后通过以下方式选择它:

$(".MyClass")...

但如果你坚持:

  $('div') .filter(function() { return this.id.match(/person\_[0-9]\_name/); }) .css('border','solid 1px red')

答案 1 :(得分:3)

JQuery模拟CSS选择器。所以,这应该运作良好:

$('input[id^="person_"][id$="_name"]');

答案 2 :(得分:2)

答案 3 :(得分:1)

将一个类添加到person_n_name元素并改为使用类选择器。

答案 4 :(得分:1)

你可以尝试用课程挑选它们。首先为它们设置一个类,然后通过脚本

选择它们 像这样:

<input type='text' id='person_1_name' class='person'> 
<input type='text' id='person_2_name' class='person'> 
<input type='text' id='person_3_name' class='person'> 
<input type='text' id='person_4_name' class='person'> 
<input type='text' id='person_5_name' class='person'> 

<script type="text/javascript">

var person = $(".person");

person var将包含一个数组

答案 5 :(得分:1)

最好的方法是在class='person_name'中添加input并使用

$(".person_name")focusout( function() {

   alert("Hello World");

});

但如果你被迫使用id,那么你可以使用下面的代码

$("input[id^='person_'][id$='_name']").focusout( function() {

   alert("Hello World");

});

在此处查看有效的演示http://jsfiddle.net/usmanhalalit/aPD5K/

答案 6 :(得分:0)

这应该有效(未经测试)

$('input[id*="person"]')