Jak uzyskać wartość <span> przy użyciu jQuery?


149

To jest podstawowe.

Jak uzyskać wartość „To jest moje imię” z powyższego zakresu?

<div id='item1'>
<span>This is my name</span>
</div>

Odpowiedzi:


299

Myślę, że powinien to być prosty przykład:

$('#item1 span').text();

lub

$('#item1 span').html();

1
Gdzie znajdę te funkcje jQuery?
Felipe Barreiros

25
Myślę, że przy przedstawianiu tych dwóch funkcji ważne jest, aby nie mylić nowych programistów, sugerując, że robią to samo, kiedy nie (chociaż w tym przykładzie tak będzie). Należy pamiętać, że .text()html zakoduje wszystkie znalezione znaki, a .html()nie zakoduje żadnych znaków.
VoidKing

Czy można to osiągnąć za pomocą wielu rozpiętości tej samej klasy?
Matthew Woodard

Natknąłem się na to, próbując wymyślić tspan do pracy z IE. Odkryłem, że musisz używać .text () z tspan, a nie .html (). Nie jestem pewien, dlaczego i może nie być w przypadku wszystkich, ale naprawiłem to w IE, gdy użyłem .text ().
Kalel Wade

@MatthewWoodard $('.class').each(function() { $(this).html() });; ponieważ $('.class').html()zwróci wartość .html () dla pierwszego elementu
tomsihap


7

Zakładając, że zamierzałeś odczytać id = "item1", potrzebujesz

$('#item1 span').text()


5

Ponieważ nie podałeś atrybutu dla wartości „item”, zakładam, że używana jest klasa:

<div class='item1'>
  <span>This is my name</span>
</div>

alert($(".item span").text());

Upewnij się, że zaczekasz na załadowanie DOM, aby użyć twojego kodu, w jQuery używasz do tego ready()funkcji:

<html>
 <head>
  <title>jQuery test</title>
  <!-- script that inserts jquery goes here -->
  <script type='text/javascript'>
    $(document).ready(function() { alert($(".item span").text()); });
  </script>
</head>
<body>
 <div class='item1'>
   <span>This is my name</span>
 </div>
</body>


1
zmieniłeś pytanie! Twoja odpowiedź jest właściwa dla twojego pytania, podał identyfikator, a nie nazwę klasy
Lewis

cóż, jeśli zobaczysz pierwszy komentarz pod jego nazwiskiem, zauważysz, że w ogóle nie napisał atrybutu, był to <div 'item1'>, najwyraźniej źle zgadłem.
Francisco Aquino

2

W javascript nie użyłbyś document.getElementById('item1').innertext?





0

BARDZO WAŻNE Dodatkowe informacje o różnicy między .text () i .html ():

Jeśli twój selektor wybiera więcej niż jeden element, np. Masz dwa takie zakresy <span class="foo">bar1</span> <span class="foo">bar2</span> ,

następnie

$('.foo').text();dołącza oba teksty i daje ci to; natomiast

$('.foo').html(); daje tylko jedną z nich.


0

Możesz użyć id in span bezpośrednio w swoim html.

<span id="span_id">Client</span>

Wtedy twój kod jQuery byłby

$("#span_id").text();

Ktoś pomógł mi sprawdzić błędy i stwierdził, że użył val () zamiast text (), nie jest możliwe użycie funkcji val () w span. Więc

$("#span_id").val();

zwróci wartość null.


-2
<script>
    $(document).ready(function () {

            $.each($(".classBalence").find("span"), function () {
            if ($(this).text() >1) {
                $(this).css("color", "green")

            }
            if ($(this).text() < 1) {
                $(this).css("color", "red")
                $(this).css("font-weight", "bold")
            }
        });

    });
    </script>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.