我有这个HTML标记:
<div class="wf__jqAPcontrol[1] wf__hide wf__optional" style="display: block;">
<label>Additional Info</label>
<fieldset class="wf__list wf__jqAPhtml" enabled="enabled">
<label for="specialDiscount\[1\]_529663" style="padding: 0 !important">
<input type="checkbox" value="-5.00" name="specialDiscount[1]" id="specialDiscount\[1\]_529663" class="wf__list jq__recomputeThisService" checked="checked"> Discount (5%)
</label>
</fieldset>
</div>
我有这个jQuery代码:
if ( $('#specialDiscount\\[1\\]_529663').prop('checked') ) alert('checked');
else alert('unchecked');
我无法让jQuery识别checkbox属性。它总是返回未选中状态。
答案 0 :(得分:1)
要使用任何元字符(例如
!"#$%&'()*+,./:;<=>?@[\]^`{|}~)作为名称的文字部分,必须使用两个反斜杠进行转义:\。
\
也是特殊的元字符,所以要逃避它,你必须使用\
var el = $('[id="specialDiscount\\\\[1\\\\]_529663"]');
// ^ String ^
if (el.prop('checked')) alert('checked');
else alert('unchecked');
\
这里需要\\
因为它包含在引号中所以它是字符串
Attribute Equals Selector [name="value"]
<小时/> Fiddle Demo
var el = $('#specialDiscount\\\\\\[1\\\\\\]_529663');
\
您需要\\\\
[
您需要\\[
]
您需要\\]
<强>问题强>
你的选择器是错误的,所以如果条件总是返回false