Помощь в jquery для динамического div и p - PullRequest
1 голос
/ 14 марта 2011

У меня проблема, которую я не могу понять в данный момент. У меня есть скрипт в jsp, который создает динамические теги <p> и <div>. У каждого тега <p> есть класс 'parent', а у каждого класса div есть класс 'child'. Теперь я хочу, чтобы, когда пользователь нажимал на определенный тег <p>, тогда должен отображаться <div>, который находится под этим <p>. Но когда я нажимаю на тег <p> сейчас ... он открывает все divs ... других тегов <p> тоже. Пожалуйста, помогите мне с этим. спасибо

Спасибо, ребята ... Я сделал несколько изменений в коде ... и теперь он работает нормально.

$(document).ready(function(){
$(".child").hide();
$(".parent").bind('click',function(){



$(this).next('.child').toggle("slow");


    });

});

Ответы [ 3 ]

4 голосов
/ 14 марта 2011

В jQuery

$('p.parent').click(function(){ $(this).next('.child').show(); });

Метод .next() указывает jQuery выбрать «сразу после родного брата», который в вашем случае будет div.

0 голосов
/ 14 марта 2011

Вы должны использовать дочерние селекторы в jquery: http://api.jquery.com/category/traversing/tree-traversal/

Я не могу ответить без кода, но вот моя попытка:

$('p').click(function(){
    $(this).find('div').show();
});

это работает, если код, неправильно, это что-то вроде этого: <p><div></div></p>.

Если у вас есть код <p></p><div></div>, используйте это:

$('p').click(function(){
    $(this).next().show();
});
0 голосов
/ 14 марта 2011

когда вы используете селектор jquery, чтобы получить p, как это:

$('p.parent')

выберет ВСЕ теги p с родителем класса. Вы должны быть более конкретными при выборе Например, $('p.parent, .child:first') выберет первый, отметьте http://api.jquery.com/category/selectors/ для всех селекторов в jquery.

Если вы хотите выбрать p, на который нажимаете, вы просто используете $ (this).

$('p.parent').bind('click', function() {
$(this).children('div').show(); // look at how you can use $(this) which will link to the p clicked on
});
...