Jquery 无法识别的表达式错误

Jquery unrecognized expression error

本文关键字:表达式 错误 识别 Jquery      更新时间:2023-09-26

我收到此错误:

Error: Syntax error, unrecognized expression: #mas137-0-0-0-1|2|7|9|13

在下面的脚本中。我不明白为什么"ID"不能"137-0-0-0-1|2|7|9|13".我使用"|"分隔符,因为如果我使用 ","":" 还有其他冲突。

$(document.body).on('click','.load_more_posts',function() {
var ID = $(this).attr("id");
if(ID) {
$("#mas"+ID).html('<img src="/images/loading.gif" />');
$.ajax({
type: "POST",url: "/show_more.php",data: "vid="+ ID, cache: false,
success: function(html){
$("#mas"+ID).remove();
$("div#posts").append(html);
}});
} else {
$(".masw").html('-');
}
return false;
});

您必须转义不接受的符号。一种方法是

var ID = $(this).attr("id").replace(/'|/g, '''|');

我仍然建议您对 ID 属性使用标准推荐符号。

var i = $('div').attr('id').replace(/'|/g, '''|');
var t = $('#mask'+i).text();
alert(t);
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="137-0-0-0-1|2|7|9|13"></div>
<div id="mask137-0-0-0-1|2|7|9|13">Text</div>