【问题标题】:How to select following input elements and how to get part of the ID using Jquery?如何选择以下输入元素以及如何使用 Jquery 获取部分 ID?
【发布时间】:2009-12-28 06:29:03
【问题描述】:

有很多输入元素的ID是

问题5,问题6,问题7

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

我不是说$('#question5'),我是指选择他们的组。

还有如何使用 Jquery 获取最后一个数字,如 5,6,7,...?

【问题讨论】:

  • 这些输入元素是动态创建的。

标签: javascript jquery jquery-selectors


【解决方案1】:

您可以选择所有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
});

【讨论】:

  • 这些输入元素是动态创建的。
【解决方案2】:

试试这个:

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

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

一旦你有了这些元素,你可以简单地在它们上做一个 javascript 子字符串来找到数字:

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

【讨论】:

  • 这些输入元素是动态创建的。
  • 没关系,不会有什么不同。只要它们是 DOM 的一部分,jQuery 选择器就会找到它们。
【解决方案3】:

最简单的解决方案可能是给元素一个可以选择的通用类:

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

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

【讨论】:

    【解决方案4】:

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

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

    在类上使用 select 方法就可以了

    根据您要执行的操作,您可以使用类的 jQuery 选择器添加一个 .each 来遍历数组,就像这样。

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 2012-08-02
      • 2021-08-01
      相关资源
      最近更新 更多