Como obtenho o valor de um <span> usando jQuery?

149

Isso é básico.

Como obtenho o valor 'Este é meu nome' do período acima?

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

Respostas:

299

Eu acho que este deve ser um exemplo simples:

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

ou

$('#item1 span').html();
Lewis
fonte
1
Onde encontro essas funções do jQuery?
Felipe Barreiros
25
Eu acho que é importante ao mostrar essas duas funções que não confundimos novos codificadores, sugerindo que eles façam a mesma coisa, quando não o fazem (embora neste exemplo pareça). É importante observar que .text()o html codifica os caracteres que encontrar, enquanto .html()não codifica nenhum caractere.
precisa saber é o seguinte
Isso pode ser realizado com vários períodos da mesma classe?
Matthew Woodard
Eu me deparei com isso tentando descobrir o tspan para trabalhar com o IE. Eu descobri que você precisa usar .text () com tspan e não .html (). Não sei por que e pode não ser o caso para todos, mas o corrigiu no IE quando usei .text ().
Kalel Wade
@MatthewWoodard $('.class').each(function() { $(this).html() });; porque $('.class').html()irá retornar o valor .html () para o primeiro elemento
tomsihap
13
$("#item1 span").text();
rahul
fonte
7

Supondo que você pretendesse ler id = "item1", você precisa

$('#item1 span').text()
Rico
fonte
5

$('#item1').text(); or $('#item1').html(); funciona bem para id="item1"

dipraj.shahane
fonte
5

Como você não forneceu um atributo para o valor 'item', estou assumindo que uma classe está sendo usada:

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

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

Aguarde o carregamento do DOM para usar seu código, no jQuery você usa a ready()função para isso:

<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>

Francisco Aquino
fonte
1
você mudou a pergunta! Sua resposta é certo para a sua pergunta, ele estava indicando o identificador não um nome de classe
Lewis
bem, se você vir o primeiro comentário com o nome dele, notará que ele não escreveu um atributo, foi <div 'item1'>>, imaginei que estava errado.
22009 Francisco Aquino
2

Em javascript você não usaria document.getElementById('item1').innertext?

Mal humorado
fonte
1
     $('span id').text(); worked with me
Dev.H
fonte
1

$('#id span').text() é a resposta!

Nacho
fonte
0

$('#item1 span').html(); Está trabalhando com meu código

Mohammed Javed
fonte
0

MUITO IMPORTANTE Informações adicionais sobre a diferença entre .text () e .html ():

Se o seu seletor selecionar mais de um item, por exemplo, você tem duas extensões <span class="foo">bar1</span> <span class="foo">bar2</span> ,

então

$('.foo').text();acrescenta os dois textos e fornece isso a você; enquanto que

$('.foo').html(); dá a você apenas um desses.

user3788051
fonte
0

Você pode usar o id no span diretamente no seu html.

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

Então seu código jQuery seria

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

Alguém me ajudou a verificar erros e descobriu que ele usava val () em vez de text (), não é possível usar a função val () no intervalo. assim

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

retornará nulo.

Cristian
fonte
-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>
Mahesh
fonte