我正在尝试创建一个在选中复选框时更改文本颜色的功能。它运行正常,但突然之间它现在无法工作它说toggle变量是一个未定义的表达式,但它只是一个存储在其中的id标签。此外,即使警报弹出,css更改也无法正常工作。我非常感谢有关此功能突然崩溃的任何信息。
JavaScript,jQuery代码:
function estimateToggle(toggle)
{
var toggle = "#" + toggle;
alert(toggle);
if ($(toggle).is(":checked"))
{
alert(toggle + " is checked");
$("'" + toggle + "'").css({'color':'black'});
}else{
alert(toggle + " is unchecked");
$("'" + toggle + "'").css({'color':'#CCCCCC'});
}
}
HTML code:
<input type="checkbox" class="socialMedia" name="socMedFacebook" id="socMedFacebook" onChange="estimateToggle('socMedFacebook')" value="100">
<label for="socMedFacebook">Facebook</label>
<div align="right" class="socMedFacebook" id="socMedFacebook" name="socMedFacebook">$100</div>
以下是Chrome控制台发出的错误:
未捕获错误:语法错误,无法识别的表达式:'#socMedFacebook'
答案 0 :(得分:2)
ID选择器必须是唯一的。
阅读Two HTML elements with same id attribute: How bad is it really?
更改为
$(toggle).css({
形式
$("'" + toggle + "'") // as your variable toggle is already string don't wrap quotes around it.