【发布时间】:2009-12-28 06:29:03
【问题描述】:
有很多输入元素的ID是
问题5,问题6,问题7
,..., 如何使用 Jquery 选择这些输入元素?
我不是说$('#question5'),我是指选择他们的组。
还有如何使用 Jquery 获取最后一个数字,如 5,6,7,...?
【问题讨论】:
-
这些输入元素是动态创建的。
标签: javascript jquery jquery-selectors
有很多输入元素的ID是
问题5,问题6,问题7
,..., 如何使用 Jquery 选择这些输入元素?
我不是说$('#question5'),我是指选择他们的组。
还有如何使用 Jquery 获取最后一个数字,如 5,6,7,...?
【问题讨论】:
标签: javascript jquery jquery-selectors
您可以选择所有id以'question'开头的input元素,然后提取数字,例如:
$('input[id^=question]').blur(function () {
var number = +this.id.match(/\d+/)[0];
});
要小心,因为如果正则表达式不匹配,它会抛出一个TypeError,一个更安全的版本应该是这样的:
$('input[id^=question]').blur(function () {
var match = this.id.match(/\d+/);
var number = match ? +match[0] : 0; // default zero
});
【讨论】:
试试这个:
$("input[id^='question']")
它将匹配具有以question 开头的id 属性的输入元素。
一旦你有了这些元素,你可以简单地在它们上做一个 javascript 子字符串来找到数字:
$("input[id^='question']").each(function() {
alert(this.id.substr(8));
});
【讨论】:
最简单的解决方案可能是给元素一个可以选择的通用类:
<input id="question5" class="questions">
<input id="question6" class="questions">
<input id="question7" class="questions">
然后您可以使用 $(".questions") 选择所有这些,然后您可以使用 jQuery .attr() 函数获取它们的 id:s。
【讨论】:
为每个输入字段添加一个类。
<input class='questions'>
$('.questions')
在类上使用 select 方法就可以了
根据您要执行的操作,您可以使用类的 jQuery 选择器添加一个 .each 来遍历数组,就像这样。
$('.questions').each(function (i){
//i = the current question number
alert('this is question '+i);
});
另外,here 是关于 jQuery 中 .each 方法的进一步文档
【讨论】: