Jquery 选择器输入[ type = text ]’)

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

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

How do I change it to select input[type=text] or select?

439158 次浏览

使用普通的 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 ()方法实现的, so $('span', this) is equivalent to $(this).find('span').

我个人认为第一个选择是最可读的:) ,但你的看法

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

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

更多信息:

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

循环:

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

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

var $list = $("#tableOrForm :input[type='text']");


$list.each(function(){
// Go on with your code.
});

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

var $currentItem = $(this);

这将把当前项设置为每个循环的当前迭代。然后您可以对 temp 变量做任何您想做的事情。

希望这对大家有帮助!