【问题标题】:jQuery Checkbox toggle function not workingjQuery Checkbox 切换功能不起作用
【发布时间】:2013-10-23 08:27:27
【问题描述】:

我正在尝试创建一个在选中复选框时更改文本颜色的函数。它工作正常,但突然之间它不起作用它说切换变量是一个未定义的表达式,但它只是一个存储在其中的 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 代码:

<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'

【问题讨论】:

  • 您有 2 个具有相同 ID 的元素。标记无效。也许socMedFacebook-divsocMedFacebook-box
  • 我将其更改为 $(toggle + "1".css({ 并且现在可以使用。 TY 非常感谢你们的帮助。

标签: jquery css checkbox


【解决方案1】:

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.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多