我有一个id为
的元素 link-21-'some-text''''sometext'-1
。
我无权在源头更改id
。有没有办法使用id选择它们?
jQuery("#link-21-'some-text''''sometext'-1")
因为显而易见的原因而抛出错误。有没有解决这个问题?
答案 0 :(得分:2)
由于它包含一些特殊含义字符,因此请使用attribute equals selector或escapes the special meaning character。
检查j Query selctor docs:
使用任何元字符(例如!"#$%&'()* +,。/:;< =>?@ [] ^ `{|}〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\。例如,id =" foo.bar"的元素可以使用选择器$(" #foo \ .bar")。W3C CSS规范包含the complete set of rules regarding valid CSS selectors。同样有用的是Mathias Bynens在CSS character escape sequences for identifiers上的博客文章。
所以它可以像跟随或逃避每个元字符。
jQuery('[id="link-21-'some-text''''sometext'-1"]')
答案 1 :(得分:0)
这应该有效
$('[id*="&apos"]')
选择其ID中都有&'s的元素
答案 2 :(得分:0)
使用通用服务器端语言生成简单ID
使用正确的jquery选择器来选择元素$('#link-21')
假设数据库中的数据格式正确,您应该有一个唯一的主键,使用该唯一键来形成您的唯一ID