gpt4 book ai didi

jQuery .filter() 方法未按 jQuery 1.5.1 中的预期返回元素

转载 作者:行者123 更新时间:2023-12-01 04:53:24 24 4
gpt4 key购买 nike

我的一些 HTML 输入的名称包含多个方括号。

例如

<input name="skus[0].skuattributeoptions[1].sao_option_id" value="559" />

我读到,只要将值括在引号中,就可以使用方括号包含属性值。这很好,但是,当我在包含具有上述名称的元素的 jquery 对象上使用 .filter() 时,不会返回任何元素。

下面是 Chrome 控制台输出的屏幕截图,它说明了我的意思。

输入 = $('[name="skus[0].skuattributeoptions[1].sao_option_id"]')按预期返回三个元素。

但是当我在同一组元素上使用 inputs.filter('[name="skus[0].skuattributeoptions[1].sao_option_id"]') 时,我没有返回任何内容。

请注意,当传递给 .filter() 的选择器只有一组方括号时,例如inputs.filter('[name*="skuattributeoptions[1].sao_option_id"]') 过滤器返回我所期望的结果!

我使用的是 jQuery 1.5.1。我做错了什么吗?

http://www.photogifts.co.uk/content/images/affiliate/example/jquery-filter-issue.png

最佳答案

这是正确的,我刚刚使用 jQuery 1.5.1 尝试过,它返回了一个空集 [] ,我建议更新jQuery,如果你必须使用它,你可以阅读name属性代替:

inputs.filter(function() {
return this.name === "skus[0].skuattributeoptions[1].sao_option_id";
});

http://jsfiddle.net/zVUNm/

编辑:如果您转义[,它也可以工作。 , ].字符而不是使用引号,似乎 jQuery 1.5.1 的 .filter() 中有一个错误方法:

inputs.filter('[name=skus\\[0\\]\\.skuattributeoptions\\[1\\]\\.sao_option_id]'); 

http://jsfiddle.net/tE4et/

嗯,那个版本是旧版本,它是2011年2月发布的,新版本中不存在这个问题。

关于jQuery .filter() 方法未按 jQuery 1.5.1 中的预期返回元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16962770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com