当我的jQuery移动页面上的所有表单元素按类循环时,我看到许多没有ID的额外元素。这对于一些控件来说不是一个主要问题,但是在页面上有很多选择可能会浪费很多代码,其中循环内部的代码无缘无故地运行。
E.g。一个带有单个选择控件的jQuery移动页面,如下所示:
<select name="myName" id="myId" class="myClass"/></select>
...和一个看起来像这样的javascript循环:
for(g=0;g<$('.myClass').length;g++){
alert(g + " - " + $('.myClass')[g].id);
}
...产生两个警报:
任何人都知道为什么有两个元素以及为什么第一个没有ID?它似乎与jQuery Mobile有关,除了原始的'标准'之外,它还创建了一个新的花式控件。
如果是这种情况,我可以使用哪种选择器,以便我只选择实际的可见选择控件?
答案 0 :(得分:1)
像这样循环遍历:
$("select.myClass").each(function() {
console.log($(this).attr("id"));
});
这将输出具有类myClass
答案 1 :(得分:0)
简单方法,使用$.each()
。
<强> Demo 强>
// Find all selects with .myClass
var list = $(document).find('select.myClass');
// Read the result
$.each(list, function () {
console.log($(this).attr('name')+' : '+$(this).attr('id'));
});
您可以将它们推入数组。
<强> Demo 强>
// Create an Array
var selects = [];
// Find all selects with .myClass
var list = $(document).find('select.myClass');
// Push id of each select
if (list.length > 0) {
$.each(list, function () {
selects.push({
'id': $(this).attr('id')
});
});
}
// Read the array
$.each(selects, function (i, v) {
console.log(v.id);
});