如果您有多个具有相同类名的(动态)文本框并使用jquery循环遍历每个所述文本框,您是否可以假设每次选择文本框的顺序是相同的?< / p>
示例:
文本框1值= 1 文本框2值= 2 文本框3值= 3
$(".textboxes").each(function(){
alert( $(this).val() );
});
每次都会以相同的顺序打印这些值吗?
答案 0 :(得分:8)
循环从开始到结束,0到最大长度,如果&gt; 0,所以如果你提供一个html选择器(它将按照它们在结构/标记中定义的顺序拾取元素),它将始终以相同的顺序。
但是,如果你直接将一个对象输入$ .each,因为没有标准的方式或规则来规定排序应该是什么,通常它会按照我们所见过的大多数解释器的顺序排列,但是口译员并不应该遵守这个“规则”。
each: function( object, callback, args ) {
var name, i = 0, length = object.length;
if ( args ) {
if ( length === undefined ) {
for ( name in object )
if ( callback.apply( object[ name ], args ) === false )
break;
} else
for ( ; i < length; )
if ( callback.apply( object[ i++ ], args ) === false )
break;
正如您所看到的,第二个for循环是实际执行的循环。
答案 1 :(得分:1)
jQuery将从上到下获取元素并始终以相同的方式,因此每次订单都是相同的
答案 2 :(得分:-3)
这有关系吗?如果您正在编写.each函数,那么您应该对每个元素执行相同的操作。否则你应该使用其他一些方法。因此,元素出现的顺序可能无关紧要,如果确实如此,您可能已经发现了代码气味。
如果您正在寻找一种方法来单独识别列表中的每个元素,您可以尝试使用其ID,例如:
alert($(this).id + ": " + $(this).val);
这样做的好处是,如果预期的元素没有出现在列表中,那么识别它会更容易。