【问题标题】:Uncaught Error: Syntax error, unsupported pseudo未捕获的错误:语法错误,不支持的伪
【发布时间】:2016-09-05 00:44:06
【问题描述】:

我正在尝试修复我的代码中的一个非常奇怪的错误。我有以下创建 HTML 的代码。它在单击 div 时调用 RemoveCompareOffer() 函数。这个函数适用于所有类型的id,除了一个id是ADSL2:Bundles

创建 HTML 的函数:

function AddCompareOfferInCompareBox()
{
    $('.SelectedOffer').each(function () {
        innerHtml = innerHtml + '<div class="compare-box"> <div class="compare-close"><span class="closed" onclick="RemoveCompareOffer(\''+ $(this).attr("id") + '\')"><i class="fa fa-times"></i></span></div>'
             + '<div class="compare-logo"><img src="' + $(this).attr("imagelink") + '" /></div><p>' + $(this).attr("offername") + '</p>'
             + '<input type="button" value="View Details" class="viewbtn" onclick="CallOfferRenderAction(\'' + $(this).attr("offercode") + '\',\'' + $(this).attr("providercode") + '\')" /></div>';
    });

    $(".AddCompareOfferByMe").html(innerHtml);
}

在这个函数被这样调用时RemoveCompareOffer('ADSL2:Bundles')

function RemoveCompareOffer(id) {
    $('#' + id + '.SelectedOffer').removeClass("SelectedOffer").addClass("NotSelected").attr('checked', false);
    AddCompareOfferInCompareBox();
    SetCompareBoxsState();
}

它抛出错误:

jquery-1.11.3.min.js:3 未捕获错误:语法错误,无法识别 表达式:不支持的伪:Bundles

可能是什么原因?

【问题讨论】:

    标签: jquery syntax selector


    【解决方案1】:

    #ADSL2:Bundles.SelectedOffer 是一个选择器,表示要找到满足以下条件的元素:

    • idADSL2

    • 匹配伪类:Bundles

    • 有类SelectedOffer

    没有 CSS 伪类 :Bundles 也没有 jQuery 添加自己的;在您的情况下,它是 ID 的一部分。所以你要么转义:,要么使用属性匹配语法。

    转义:

    var id = "ADSL2:Bundles";
    $('#' + id.replace(/:/g, "\\:") + '.SelectedOffer').css("color", "blue");
    <div id="ADSL2:Bundles" class="SelectedOffer">Escaping</div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

    使用属性匹配语法:

    var id = "ADSL2:Bundles";
    $('[id="' + id + '"].SelectedOffer').css("color", "blue");
    <div id="ADSL2:Bundles" class="SelectedOffer">Escaping</div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

    【讨论】:

    • 有效!感谢您如此清晰地解释整个问题!竖起大拇指!
    猜你喜欢
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多