如果我有一个具有以下名称属性的复选框:
name="answerName[True]"
为什么我在下面的jquery行中显示它没有显示复选框?
$(this).closest('.option').siblings('.answer').find('input[name=answerName[Yes]]').show();
如果name属性是这样的:
name="answerNameTrue"
并且jquery是这样的:
$(this).closest('.option').siblings('.answer').find('input[name=answerNameYes]').show();
那么它确实显示但是当我把[]括号放在它周围突然不起作用而不显示复选框时怎么样?
答案 0 :(得分:3)
您可以使用引号:
$(this).closest('.option').siblings('.answer').find('input[name="answerName[Yes]"]').show();
答案 1 :(得分:0)
True
是一个javascript关键字。
这可能是导致混乱的原因之一..
尝试将该属性放入引号中,然后尝试..
.find('input[name="answerName[Yes]"]')
答案 2 :(得分:0)
你的[是]只是与选择者的支架相冲突
Jquery将解析:
find('input[name=answerName[Yes]]')
并将保留:
find('input[name=answerName[Yes]');
所以最后你在选择器的末尾有一个[jquery不知道该怎么做+一个额外的]。
尝试转义它:
find('input[name=answerName\[Yes\]]')
或
find('input[name="answerName[Yes]"]')