2015-02-04 4 views
-1

Я получаю эту ошибку:Jquery непризнанного выражение ошибки

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

поэтому вопрос ... –

ответ

0

Вы должны избегать символов, которые не принимаются. Один из способов сделать это -

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

Я бы по-прежнему рекомендовал использовать стандартные рекомендуемые символы для идентификационных атрибутов.

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>