如何选择以下输入元素以及如何使用Jquery获取部分ID?

时间:2009-12-28 06:29:04

标签: javascript jquery jquery-selectors

有许多输入元素,其ID是

  问题5,问题6,问题7

,...,如何使用Jquery选择这些输入元素?

我的意思并不是$('#question5'),我的意思是选择他们的一组。

另外如何使用Jquery获取最后一个数字,如5,6,7,...

4 个答案:

答案 0 :(得分:2)

您可以选择其inputid开头的所有'question'元素,然后您可以提取数字,例如:

$('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
});

答案 1 :(得分:1)

试试这个:

$("input[id^='question']")

它将匹配id属性以question开头的输入元素。

获得元素后,您只需在其上执行javascript子字符串即可找到数字:

$("input[id^='question']").each(function() {
    alert(this.id.substr(8));
});

答案 2 :(得分:0)

最简单的解决方案可能是为元素提供一个可以选择的公共类:

<input id="question5" class="questions">
<input id="question6" class="questions">
<input id="question7" class="questions">

然后你用$(".questions")选择所有这些,你可以使用jQuery .attr()函数获取它们的id。

答案 3 :(得分:0)

为每个输入字段添加一个类。

<input class='questions'>
$('.questions')

使用类上的select方法可以解决问题

取决于你要做的事情,使用类的jQuery选择器,你可以添加一个.each来遍历数组,就像这样。

$('.questions').each(function (i){  
  //i = the current question number
  alert('this is question '+i);
});

此外,here是关于jQuery中.each方法的进一步文档