javascript - jquery 名称选择器在 ie6 中不起作用

标签 javascript jquery jquery-selectors

var brands = document.getElementsByName("brand");
for(var brand in brands){
    $("input[name='brand']").eq(brand).click(function(){
                        alert("hello22");
                        loadDataFN(1);                
                });
}

此代码不在 ie6 中执行, 任何帮助将不胜感激。

最佳答案

问题可能是您正在尝试使用 for-in 构造来迭代数值数组。这通常不会产生预期的结果。请改用增量 for 循环:

var brands = document.getElementsByName("brand");

// Use an incremental for loop to iterate an array
for(var i=0; i<brands.length; i++){
    $("input[name='brand']").eq(brands[i]).click(function(){
                        alert("hello22");
                        loadDataFN(1);                
                });
}

但是,

看到代码的第一部分后,循环似乎没有必要。您应该只需要以下内容,因为您要为所有品牌输入分配相同的功能。

// These will return the same list of elements (as long as you don't have non-input elements named brand)
// though the jQuery version will return them as jQuery objects
// rather than plain DOM nodes
var brands = document.getElementsByName("brand");
$("input[name='brand']");

因此,getElementsByName() 和循环不是必需的。

$("input[name='brand']").click(function() {
       alert("hello22");
       loadDataFN(1);                
});

for-in 循环用于迭代对象的属性,而不是数组的元素。

关于javascript - jquery 名称选择器在 ie6 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860334/

相关文章:

javascript - 具有动态时间间隔并依赖于 disabledTimeIntervals 设置的表单

javascript - 如何在将多个类作为一个类的jquery中使用not选择器

javascript - jQuery:在 DOM 注入(inject)后选择元素(当元素未知时)

javascript - 提升浏览器的 javascript 权限?

javascript - Babel 和 TypeScript 之间的主要区别是什么

javascript - 为什么在分配 DerivedClass.prototype 时使用 Object.create 而不是 new Super

javascript - 提交按钮会删除 Material ui 表中的所有复选框

javascript - 在表单输入中指定逗号后的最大长度

javascript - 单选按钮列表列表 - 只允许选择一个

javascript - jQuery 查找所有类在父类之下的元素,即使在子元素中也是如此