2015-12-06 5 views
3

ошибки синтаксиса, непризнанное выражение: #2015-11-30|1112|1Jquery ошибка синтаксиса, непризнанное выражение

У меня есть якорь тег с идентификатором «2015-11-30 | 1112 | 1», что я хотел бы применить класс к. Я делаю тот же метод для в '', и это работает, но я получаю синтаксические ошибки со следующим. Может ли кто-нибудь объяснить синтаксическую ошибку?

$(document).ready(function() { 
     $("#tbl_calendar").on("click", "a", null, clickAppointment); 
    }); 


function clickAppointment(eventData) 
    { 
     //Get the Id of the appointment that has been clicked: 
     currentAppointment = $(this).attr('id'); 

     //alert('clicked' + '#'+currentAppointment) 

     $('#'+currentAppointment).addClass('selected'); 
    } 
+2

Что 'null' там делает? Измените его на '$ (" # tbl_calendar "). On (" click "," a ", clickAppointment);', если вы не передаете данные, не нужно использовать этот аргумент – adeneo

+3

Почему бы не просто '$ (this) .addClass ('выбрано'); '? Вы пытаетесь выбрать элемент с тем же «id», что и элемент с кликом. Если 'id' уникален, это не имеет смысла. –

+1

Также посмотрите на [этот вопрос] (http://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html) для действительных символов для идентификаторов. – Quantumplate

ответ

4

Вы должны избежать специальных chracters в вашем id с помощью \\, проверьте пример ниже.

Надеюсь, это поможет.


console.log($("#2015-11-30\\|1112\\|1").text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="2015-11-30|1112|1">Div text example</div>

2

Для текущий код, чтобы работать, вы не должны использовать этот селектор ID, так как у вас уже есть ссылка на объект внутри функции событий.

$(document).ready(function() { 
    $("#tbl_calendar").on("click", "a", clickAppointment); 

    function clickAppointment(eventData) { 
    //"this" will have a reference to the clicked object 
    $(this).addClass("selected"); 
    } 
}); 

Не уверен, что ваш HTML, но учитывает что-то похожее на нижеследующее.

<ul id="tbl_calendar"> 
    <li> 
    <a id="2015-11-30|1112|1">Click</a> 
    </li> 
</ul> 

Working sample

Смежные вопросы