2012-08-08 22 views
7

Chciałbym wybrać konkretną grupę przycisków, które istnieją wewnątrz DIV i przypisać ich identyfikator do ukrytego pola na stronie, ale nie mogę za życia wybrać przyciski wewnątrz div .. Przykład zawiedzie poniżejPrzycisk wyboru Jquery wewnątrz div

źródłowym HTML

<div id = test> 
    <div class="ButtonGroupWrapper">      
        <img src="test.jpg" width="100" height="100" alt="thumbnail" /> 
       <input id="buttonID5" type="submit" value="Link" class="button" /> 
    </div> 
    <div class="ButtonGroupWrapper">      
        <img src="test.jpg" width="100" height="100" alt="thumbnail" /> 
       <input id="buttonID6" type="submit" value="Link" class="button" /> 
    </div> 
    </div> 

selektor jQuery nie

$(".ButtonGroupWrapper").find(":button").click(function() { 
     alert("hi there"); 
     return false; 
    }); 

    $("#ButtonGroupWrapper input[type=button]").click(function() { 
     alert("hi there"); 
     return false; 
    }); 

    $("#ButtonGroupWrapper :button").click(function() { 
     alert("hi there"); 
     return false; 
    }); 

Odpowiedz

10

Spróbuj:

$(".ButtonGroupWrapper").find(".button").click(function() { 
     alert("hi there"); 
     return false; 
}); 

Twój pierwszy przykład nie dlatego starasz się kierować klasę, która jest poprzedzona . nie :. Możesz także próbować kierować element przycisku typu, ale dany element jest typu prześlij.

Twój drugi przykład kończy się niepowodzeniem, ponieważ próbujesz wybrać wejście typu przycisku, gdy nie istnieje (Twoim celem jest wpisanie). Alternatywą byłoby input[type=submit].

Twój trzeci przykład kończy się niepowodzeniem z podobnego powodu, jak w pierwszym przykładzie, który nie spełnia oczekiwań, ponieważ szuka elementu elementu.

Zobacz także http://api.jquery.com/button-selector/

+1

Dziękuję bardzo. Poszedłem z pierwszą zmianą przycisku: button na: submit $ (". ButtonGroupWrapper") find (": submit"). Click (function() { alert ("hi there"); return false; }); – RenRock

0

będzie działać:

$(".ButtonGroupWrapper").find(".button").click(function() { 
    alert("hi there"); 
    return false; 
}); 
7

Umieszczenie miejsca szuka jakiejkolwiek klasy .button w swojej klasie .ButtonGroupWrapper. (UWAGA: nie wszystkie „przycisk”, ale nic z class = „link” kodu dodanego do niej)

$(".ButtonGroupWrapper .button").click(function() { 
    alert("hello"); 
    return false; 
}); 

w kodzie HTML submit wejście ma „klasa” z „przycisku”. Może to być coś takiego jak .strawberry lub .mybutton lub cokolwiek innego.

Alternatywa:

Jak masz identyfikator owijając dużo można również przycisk w identyfikatorze docelowa:

<div id ="test"> 
    <div>      
    <img src="test.jpg" width="100" height="100" alt="thumbnail" /> 
    <input type="submit" value="Link" class="button" /> 
    </div> 
    <div>      
    <img src="test.jpg" width="100" height="100" alt="thumbnail" /> 
    <div class="button" />Just text</div> 
    </div> 
</div> 

A potem JavaScript mogą być:

$("#test .button").click(function() { 
    alert("button class clicked"); 
    return false; 
}); 

Pamiętaj, że musisz uruchomić to po załadowaniu DOM, więc najlepszą praktyką jest albo zapisz je na końcu strony, albo zawiń t w Twojej ulubionej funkcji onready.

+1

Podczas gdy wspaniale przyczyniasz się do powstania strony, zwróć uwagę na ** datę ** i ** status ** pierwotnego pytania. Pytanie zostało opublikowane ** 1 rok temu **, a autor zaakceptował już bardzo dobrą, kompletną odpowiedź (zwróć uwagę na zielony znacznik wyboru obok odpowiedzi j08691). Zazwyczaj, o ile nie ma żadnych odpowiedzi (lub bardzo słabych i niekompletnych odpowiedzi), powinieneś unikać odpowiadania na pytania starsze niż kilka miesięcy. To samo dotyczy odpowiedzi na pytania, na które już przyjęto odpowiedź.* przyjęte * oznacza, że ​​PO skutecznie odpowiedział na pytanie. – Daniel

+0

OK dziękuję za poinformowanie mnie. –

+0

@Daniel, tak naprawdę, myślę, że Digital dodał bardzo przydatne informacje, których nie ma w zaakceptowanej odpowiedzi. Ja na przykład cieszę się, że nowa odpowiedź została opublikowana! – JoshP

Powiązane problemy