Я пытаюсь получить "id" элемента с щелчком, но у меня возникают трудности.
Вот то, что я пытаюсь сделать в контексте. При нажатии #display-p_1
:
<div id="display-p_1"> <a href='#content_div'> Panel 1</a></div>
Я хочу захватить "идентификатор" элемента, затем удалить последнюю цифру "id", присвоить ее индексу и запустить функцию runIt()
.
$(this).click(function() {
var id = $(this).attr('id'); //this line isn't working
n = id.slice(-1);
runIt();
});
Я думаю, что $(this)
не относится к правому элементу внутри функции.
$("[id^=display-p_]").on("click", function(){
//stuff
});
Это накладывает обработчик кликов на все элементы, у которых есть идентификатор, начинающийся с "display-p_"
Соответствующая документация по jQuery
Поскольку мой ответ уже выбран, я отредактирую его с помощью кода @scunliffe split(), поскольку это лучшее решение для этой части.
$("[id^=display-p_]").on("click", function(){
var divID = this.id;
n = divID.split('_')[1];//this is assigning the string... use parseInt if you want a number
runIt(n);//assuming you want to pass in the result
});
Когда у вас есть элемент в вашем обработчике, вы можете получить id
двумя способами:
Я в целом применяю это ко всем элементам div
но вы хотите сделать это классом или чем-то еще.
$('div').click(function(){
var fastAccessToID = this.id;
var slowerAccessToID = $(this).attr('id');
});
Что касается вас, вы надеетесь снять последнюю цифру... Я думаю, вы хотите получить номер после подчеркивания. Например, "13" против "3", если идентификатор был "display-p_13"?
Таким образом,...
$('div.someClass').click(function(){
var divID = this.id;
n = divID.split('_')[1];//this is assigning the string... use parseInt if you want a number
runIt();
});