2015-12-04 2 views
0

Я использую JQuery v1.11.3 и у меня есть сообщение об ошибке при попытке оценить селектор, который был сбежавшим из мета-символов:Jquery непризнанного выражение

Uncaught Error: Syntax error, unrecognized expression: #foo\\/bar\\.buzz

Но если попытаться оценить его в консоль сразу это работает:

$('#foo\\/bar\\.buzz') 
[<li id=​"foo/​bar.buzz" >​…​</li>​] 

Мой простой вопрос, почему селектор не работает Eval время, но работает в консоли?

+0

@Yeldar, период должен быть экранирован (не уверен в прямой слэш), чтобы предотвратить его от проанализирован как селектор класса. –

+0

И, да, в чем смысл, в общем, использования столь сложных и непрактичных идентификаторов? –

ответ

1

Ваш код работает правильно. Проблема должна быть где-то в другом месте.

$(function(){ 
 
    snippet.log('Yahooooooo: ' + $('#foo\\/bar\\.buzz').text()) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script> 
 
<div id='foo/bar.buzz'>test</div>

+2

... По этой причине есть голосующий голос, пожалуйста, используйте его. –

+0

@SpencerWieczorek, конечно. но мы также должны показать, что код работает. – Satpal

+0

@SpencerWieczorek Ну, я по-прежнему открыт для получения ответа на сообщение об ошибке «Неисправность: синтаксическая ошибка, нераспознанное выражение». @Satpal спасибо за ваш ответ. –