jQuery Traversing для добавления и удаления содержимого HTML - PullRequest
1 голос
/ 19 декабря 2011

Не удается добраться до этого тега span для добавления и удаления содержимого HTML для стрелки переключения.

$('h3 + p').hide();

$('h3').click(
function() {
$(this).next().slideToggle('normal');
 });

if ($('p').css('display') == 'none') {
      $(this).closest("span").html('&#9658');
 }
 else {
      $(this).closest("span").html('&#9660');
 } 


<h3><span></span> TITLE</h3>
<p> this content will toggle</p>

Ответы [ 3 ]

0 голосов
/ 19 декабря 2011

Вот модификация вашего кода, я думаю, что вы хотите:

http://jsfiddle.net/qXSnC/1/

$('h3').click(function() {
    $(this).next().stop().slideToggle('normal').toggleClass("hidden");

    if (!$('p').hasClass('hidden')) {
          $(this).find("span").html('&#9658');

     }
     else {
          $(this).find("span").html('&#9660');
     } 

 });
0 голосов
/ 19 декабря 2011

Вот решение, которое я придумала:

$('h3 + p').hide();

$('h3').click(function() {
    var t = $(this),
        p = t.next();

    t.find('span').html(p.is(':visible') ? '►' : '▼');

    p.slideToggle('normal');
});

Я создал рабочий jsfiddle здесь .

0 голосов
/ 19 декабря 2011
if ($('p').is(":visible")) {
      $(this).closest("span").html('&#9658');
 }
 else {
      $(this).closest("span").html('&#9660');
 } 
...