1

如果我有一个具有以下名称属性的复选框:

name="answerName[True]"

当我在下面执行这条 jquery 行时它没有显示复选框,怎么会?

$(this).closest('.option').siblings('.answer').find('input[name=answerName[Yes]]').show();

如果名称属性是这样的:

name="answerNameTrue"

jquery是这样的:

$(this).closest('.option').siblings('.answer').find('input[name=answerNameYes]').show();

然后它确实显示但是当我在它周围加上 [] 括号时它突然不起作用并且不显示复选框是怎么回事?

4

3 回答 3

3

您可以使用引号:

$(this).closest('.option').siblings('.answer').find('input[name="answerName[Yes]"]').show();
于 2012-10-04T20:18:40.777 回答
0

True 是一个 javascript 关键字。

这可能是它搞砸的原因之一。

尝试将属性放在引号中,然后尝试..

.find('input[name="answerName[Yes]"]')
于 2012-10-04T20:17:45.343 回答
0

您的 [yes] 只是与选择器的括号冲突

Jquery 将解析:

find('input[name=answerName[Yes]]')

并将保留:

find('input[name=answerName[Yes]');

所以最后你有一个 [ that jquery don't know what to do with it + an extra ] 在你的选择器的末尾。

尝试逃避它:

find('input[name=answerName\[Yes\]]')

或者

find('input[name="answerName[Yes]"]')
于 2012-10-04T20:20:34.400 回答