【问题标题】:Syntax error, unrecognized expression in jQuery语法错误,jQuery 中无法识别的表达式
【发布时间】:2017-04-13 14:26:11
【问题描述】:

我必须选择 div 元素 idescape characters

HTML

<div id="abc/def"></div>

试过这些,

$("#abc/def").find('h4').attr('data-val', "test")  //didn't work

$("id=[abc/def]").find('h4').attr('data-val', "test")  //didn't work

$("#"+escapeSelector("abc/def")).find('h4').attr('data-val',"Test")   //didn't work

function escapeSelector(s) {
    return s.replace(/(:|\.|\[|\])/g, "\\$1");
}

错误:

Syntax error, unrecognized expression: #abc/def

我应该在哪里进行更改才能使其正常工作?

【问题讨论】:

  • 作为一个选项,您可以尝试jQuery("div[id^=abc]")jQuery("#abc\\/def")

标签: jquery html html-escape-characters


【解决方案1】:
$("#abc\\/def").text("test")  //did work :)

https://jsfiddle.net/gtpkkyw0/

在 jquery 网站上也有非常好的信息。留在这里作为参考,希望对某人有所帮助:

https://api.jquery.com/category/selectors/

【讨论】:

  • 是的,您需要在 jquery 选择器中转义一些字符。 [ ] 也需要这个。
【解决方案2】:

您不必使用Attribute equals selector 来逃避任何事情:

$('[id="abc/def"]')

https://jsfiddle.net/86uohuny/

【讨论】:

    猜你喜欢
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多