Jquery selector input[type=text]')

Jquery selector input[type=text]')

本文关键字:text selector input type Jquery      更新时间:2023-09-26

我写了一个代码,基本上选择了所有元素input type=text如下所示:

$('.sys input[type=text]').each(function () {}

如何更改它以选择input[type=text]select

使用普通的 css 选择器:

$('.sys input[type=text], .sys select').each(function() {...})

如果您不喜欢重复:

$('.sys').find('input[type=text],select').each(function() {...})

或者更简洁地说,传入context论点:

$('input[type=text],select', '.sys').each(function() {...})

注意:内部jQuery会将上述内容转换为等效find()

http://api.jquery.com/jQuery/

在内部,选择器上下文是使用 .find(( 方法实现的, 所以 $('span', this( 等价于 $(this(.find('span'(。

我个人认为第一种选择是最具可读性的:),不过你的看法

$('.sys').children('input[type=text], select').each(function () { ... });

编辑:实际上上面的代码等效于子选择器.sys > input[type=text]如果你想让后代选择(.sys input[type=text](,你需要使用@NiftyDude给出的选项。

更多信息:

  • jQuery.children()
  • 多个选择器

如果您在表单或表格中有多个文本输入需要迭代,我这样做了:

var $list = $("#tableOrForm :input[type='text']");
$list.each(function(){
    // Go on with your code.
});

我所做的是检查每个输入以查看类型是否设置为"text",然后它将抓取该元素并将其存储在jQuery列表中。然后,它将遍历该列表。您可以为当前迭代设置一个临时变量,如下所示:

var $currentItem = $(this);

这会将当前项设置为每个循环的当前迭代。然后,您可以使用 temp 变量执行任何操作。

希望这对任何人有帮助!

$('input[type=text],select', '.sys');

对于循环:

$('input[type=text],select', '.sys').each(function() {
   // code
});