2010-10-11 40 views
2

在HTML:如何选择其属性的元素,当值是一个数组

<select name=site[new][fw][version]></select> 

在jQuery中,我已经试过:

var fwvs=$('select[name=site\\[new]\\[fw]\\[version]]') 

但fwvs.length返回0。上午什么我做错了?

感谢

+0

没有人关心有效的html吗? – Reigel 2010-10-11 09:05:27

+0

@Reigel - 通常不需要':)'。在'name'属性中有'[]'是很常见的 - 我非常确定PHP *要求它为多值字段正确地填充它的变量。如果您指的是缺失的引号,我会和您在一起,但我将它们添加到了我的示例中。 – Kobi 2010-10-11 09:15:33

+0

这在HTML5中无效吗?我的理解是属性值只有在包含空格的情况下才必须用引号引起来...... – fabjoa 2010-10-13 11:11:27

回答

3

试试这个:

$('select[name="site[new][fw][version]"]') 

的属性选择器可以使用参数为字符串,包裹在引号(单人或双人,相同的JavaScript)。通常这些不被使用,但在这种情况下它们是有用的。

工作示例:http://jsfiddle.net/kobi/32SNS/

+0

这是行不通的。 – Marko 2010-10-11 08:49:04

+0

@Marko Ivanovski - 对我来说,Firefox,Chrome和IE8似乎都很好。 – Kobi 2010-10-11 08:50:20

+0

工作正常!另外,三倍转义(\\\\)在双倍(\\\)失败时起作用。当数组中没有其他数组时,Double可以正常工作,即site [new],但在此之后,似乎必须使用triple转义。但是,感谢科比,你的方式虽然工作!我会马上回答这个答案,所以让我这么做:) – fabjoa 2010-10-11 08:54:42

2

你应该逃脱两个开口([)和关闭(])括号内。检查jquery selectors docs

An example

+0

like:var fwvs = $('select [name = site \\\ [new \\\] \\\ [fw \\ \\\ [version \\\]]') – 2010-10-11 08:52:11

+0

正如我上面评论的那样,这并不适合我,我不得不使用\\\而不是 – fabjoa 2010-10-11 08:56:14

相关问题