【问题标题】:jQuery not selecting id containing "<" angular bracket?jQuery没有选择包含“<”尖括号的ID?
【发布时间】:2016-03-17 19:32:16
【问题描述】:

我无法在 jQuery 选择器中选择具有 id="check stage&lt;lead&gt;" 的复选框。


HTML:

<input id="check stage<lead>" type="checkbox" title="Select/Unselect Column" name="chk-stage-column-select" value="" onchange="">

Javascript:

// escape jquery selectors
    function jQueryEscape(str) {
        if (str)
            return str.replace(/([ #;?%&,.+*<>~\':"!^$[\]()=>|\/@])/g, '\\$1');

        return str;
    }


      var StageName = "<lead>";

  $("[id='check stage" + jQueryEscape(StageName) + "']").prop("checked", true);

等效的 JsFiddle:https://jsfiddle.net/vuw43uav/5/

注意:我使用的是 jQuery 1.7,我们可以在 jQuery 中选择带空格的 id。参考这个jsFiddle:https://jsfiddle.net/vuw43uav/7/

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    我知道您要求使用 jQuery Selector 使其工作,但您可以使用 javascript 来实现。

    只需使用 javascript 选择元素并使其选中。

    document.getElementById("check stage"+StageName).checked = true;
    

    这是 1.7 jquery 版本的工作小提琴。 Fiddle

    如果您需要 jquery 选择器,只需使用 javascript 选择元素,然后将其转换为 jquery 选择器,我知道这很蹩脚,但应该适合您。

    var y = $(document.getElementById("check stage"+StageName));
    y.prop("checked",true);
    

    【讨论】:

    • 新手的好答案 :)
    【解决方案2】:

    Id 属性不能有任何空格字符,检查这个spec

    该值在元素的 home 中的所有 ID 中必须是唯一的 子树,并且必须至少包含一个字符。该值不得 包含任何空格字符。

    对于 ID 可以采用的形式没有其他限制;在 特别是,ID 可以只包含数字,以数字开头,开始 带下划线,仅包含标点符号等。

    改用 data-id

    <input data-id="check stage<lead>" type="checkbox" title="Select/Unselect Column" name="chk-stage-column-select" value="" onchange="">
    
     $("[data-id='check stage" + StageName + "']").prop("checked", true);
    

    Demo

    【讨论】:

    • 您的来源已过时。请参阅the current spec:该值不得包含任何空格字符。对于 ID 可以采用的形式没有其他限制;特别是,ID 可以仅包含数字、以数字开头、以下划线开头、仅包含标点符号等。
    • Id 属性可以有空格字符。
    • @JerryGoyal 根据规范,它不应该有。但是当前的浏览器可能不支持它。所以,我推荐使用data-id
    • @gurvinder372 你的小提琴不适用于 jQuery 1.7。 1.7版本的解决方案吗?
    • @JerryGoyal 1.7 无法使用带有特殊字符的选择器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    相关资源
    最近更新 更多