首页 > 解决方案 > 使用连字符吸引 ID 时 GetElementById 不起作用

问题描述

在 html 元素的不可更改 id 标签上使用 attr('id') 时,我的代码适用于 id 没有连字符的所有实例,但是当 id 包含连字符时会中断。

$('.coloursContainer .radio-box').live('click', function(){

    if ($(this).hasClass('selected')){

    } else {
        var radioID = $(this).attr('id');
        $(this).parent().find('.radio-box').removeClass('selected');
        document.getElementById(radioID).classList.add('selected');
    }
});
<div class="coloursContainer">
    <div class="radio-box" id="Natural Wave Structure" data-category="trim-colour" data-price="0">
        <span class="selectedSign">SELECTED</span>
        <span class="imgBox" style="background-image:url('/img/colours/804.jpg')"></span>
        <h3>Natural Wave Structure</h3>
        <p>+ £0</p>
    </div>
    <div class="radio-box" id="Semi-solid Oak" data-category="trim-colour" data-price="0">
        <span class="selectedSign">SELECTED</span>
        <span class="imgBox" style="background-image:url('/img/colours/203.jpg')"></span>
        <h3>Semi-solid Oak</h3>
        <p>+ £0</p>
    </div>
</div>

第一个单选框添加了“选定”类,但是 ID 为“Semi-solid Oak”的第二个框没有。

标签: javascriptjqueryhtml

解决方案


我认为这是您使用的 jquery 版本的问题,我认为这可以通过使用.on来解决.live.检查 jquery 文档http://api.jquery.com/live/ [检查 jquery文档][1]


推荐阅读