#jquery #dom #jquery-selectors
#jquery #dom #jquery-селекторы
Вопрос:
у меня есть следующая структура DOM, основанная на щелчке h4, мне нужно получить идентификатор соответствующего виджета класса и отправить post-запрос на сервер. Я немного новичок в jQuery, поэтому испытываю трудности. Может кто-нибудь, пожалуйста, помочь?
<section id="home-sidebar" class="sidebar">
<div class="menu">
<div class="widget" id="4">
<div class="title">
<h4>First Text</h4>
<p>Do some stuff</p>
</div>
</div>
..................................
...............
<div class="widget" id = "56">
<div class="title">
<h4>N-th Text</h4>
<p>Do some stuff</p>
</div>
</div>
</div>
</section>
Как я узнаю, какой тег h4 был нажат в jQuery? Как мне получить соответствующий «идентификационный» номер виджета? (Обратите внимание, что идентификаторы не являются последовательными, они также могут быть случайными)
Комментарии:
1. числовые значения не являются допустимыми значениями W3 для атрибута ID. Маркеры идентификаторов и ИМЕН должны начинаться с буквы ([A-Za-z]) и могут сопровождаться любым количеством букв, цифр ([0-9]), дефисов («-«), подчеркиваний («_»), двоеточий («:») и точек («.»).
Ответ №1:
Вы можете использовать .parents()
для поиска узла DOM с идентификатором, который вы хотите захватить:
//bind a click handler to all h4 elements
$('h4').bind('click', function () {
//find the id of the parent node that has the .widget class
//since you are trying to get the id, you do not need to use the jQuery .attr() function which performs slower than the below code
var id = $(this).parents('.widget')[0].id;
$.get('path/to/server.file?id=' id, function (data) {
//this is the callback function for the server request
alert('Server Response: ' data);
});
});
Документация для .parents()
: http://api.jquery.com/parents /
Ответ №2:
Если вы сделали это:
$('h4').click(....)
Вы можете сделать это следующим образом:
$('h4').click(function(){
alert($(this).attr('id'))
})
Ответ №3:
$("h4").click(function(){
var a=$(this).parent().parent().attr('id');
alert(a);
})
Ответ №4:
$(document).ready(function(){
$(".widget").click(function(){
var id = $(this).attr("id"); //gives id
});
});