我有这样的表单元素:
<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)而不单独描述它们?
由于
答案 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"]')