Jquery无法识别的表达式错误

时间:2015-02-04 10:55:32

标签: javascript jquery arrays

我收到此错误:

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;
});

1 个答案:

答案 0 :(得分:1)

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

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

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

&#13;
&#13;
var i = $('div').attr('id').replace(/\|/g, '\\|');
var t = $('#mask'+i).text();
alert(t);
&#13;
<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>
&#13;
&#13;
&#13;