我已经搜索了一些有关此问题的问题(例如How to handle special characters in html element id/name in Jquery validation?),但遗憾的是它并没有帮助我,或者我没有做过这样的伎俩......
我们假设我们有一个按钮,其中包含课程.bt
和ID my|id
。 (或其他特殊分隔符,如,:;|
)
似乎无法使用它来匹配其他元素,例如$('#other_'+$('.bt').attr('id'))
您可以看到example here。
所以我的问题是,如何传输这些特殊字符(,:;|
)?
答案 0 :(得分:2)
答案 1 :(得分:2)
这是对纯jQuery解决方案的偏离,但在这种情况下,最好使用原生document.getElementById(...)
函数?
$(document.getElementById('other_' + $('.bt').attr('id')))
它读起来有点冗长,但似乎比用正则表达式更加清晰/一致/安全。
答案 2 :(得分:1)
答案 3 :(得分:1)
这是一个仍然使用id
选择器的示例,但也允许您希望能够使用的任何特殊字符:
$(document).ready(function () {
$(".bt").on("click", function () {
var escaped = $(this).attr("id").replace(/([,:;|])/g, "\\$1");
console.log("escaped: " + escaped);
$("#other_" + escaped).toggleClass("testing");
});
});