Pracuję na stronie Tabs ... Próbuję uzyskać identyfikator li z pętli, a następnie ukryj ją. Nie znaleziono identyfikatora.

<ul>
     <li id="Page1" class="tab"><a href="#">Page2</a></li>
     <li id="Page2" class="tab"><a href="#">Page2</a></li>
</ul>

Kod jQuery:

   $(".tab").click(function() { 
       var thisclick = $(this).attr("id");
       var links = $(this).parent();
       $(links).each(function() {
           $("#PG_" + $(this).attr("id") ).hide();
       });
        $("#PG_" + thisclick).show();
   });
1
I'll-Be-Back 10 październik 2011, 20:33

4 odpowiedzi

Jeśli poprawnie rozumiem problem, masz odpowiednie elementy na stronie, które powinny być wyświetlane tylko wtedy, gdy kliknięto link bazowy. Jeśli tak jest, to działało:

$(".tab").click(function() {
   var thisclick = $(this).attr("id");
   var links = $(this).parent().children();
   $(links).each(function() {
       $("#PG_" + $(this).attr("id")).hide();
   });
    $("#PG_" + thisclick).show();
});

http://jsfiddle.net/gdc88/4/

3
MonkeyCoder 10 październik 2011, 16:52

Na przykład, w którym chcesz zapytać o {X0}} "Nazwa Nodename Nazwa}, które najprawdopodobniej nie będzie miało wyniku. Chyba że masz tagi

<PG_Page1></PG_Page2>

Gdzieś na twojej stronie. Więc domyślam się, że albo zapomniałeś prefiksu sznurka z . dla nazwy klasy, lub {x1}} dla identyfikatora.

A przy okazji można uzyskać dostęp do this.id zamiast tego tworząc obiekt wrapper jQuery i wreszcie zadzwonić attr()

2
jAndy 10 październik 2011, 16:38

Czy tęsknisz # w selektorze?

$("#PG_" + $(this).attr("id") ).hide();
0
Andrey M. 10 październik 2011, 16:37

Z małym class Dodatek do HTML możesz uprościć swojego jQuery. Tak jak

<ul>
    <li id="Page1" class="tab"><a href="#">Page1</a></li>
    <li id="Page2" class="tab"><a href="#">Page2</a></li>
</ul>

<div id='PG_Page1' class="page"> content from page 1 here </div>

<div id='PG_Page2' class="page"> content from page 2 here </div>

JQuery

$(".tab").click(function() {
    var thisclick = $(this).attr("id");
    $('div.page').each(function(){
        $(this).hide();
        $("#PG_" + thisclick).show();        
    });
});

Przykład: http://jsfiddle.net/jasongennaro/fznuh/

0
Jason Gennaro 10 październik 2011, 17:00