Как получить значение <span> с помощью jQuery?

149

Это основное.

Как я могу получить значение «Это мое имя» из вышеуказанного диапазона?

<div id='item1'>
<span>This is my name</span>
</div>
Фелипе Баррейрос
источник

Ответы:

299

Я думаю, что это должен быть простой пример:

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

или

$('#item1 span').html();
Льюис
источник
1
Где я могу найти эти функции jQuery?
Фелипе Баррейрос
25
Я думаю, что при показе этих двух функций важно, чтобы мы не путали новых кодеров, предлагая им делать то же самое, когда они этого не делают (хотя в этом примере это будет выглядеть так). Важно отметить, что .text()html будет кодировать любые найденные символы, но .html()не будет кодировать любые символы.
VoidKing
Может ли это быть достигнуто с несколькими пролетами одного и того же класса?
Мэтью Вудард
Я наткнулся на это, пытаясь понять tspan для работы с IE. Я обнаружил, что вам нужно использовать .text () с tspan, а не .html (). Не уверен, почему, и это может быть не для всех, но это исправило это в IE, когда я использовал .text ().
Калель Уэйд
@MatthewWoodard $('.class').each(function() { $(this).html() });; потому $('.class').html()что вернет значение .html () для первого элемента
tomsihap
7

Предполагая, что вы намеревались прочитать id = "item1", вам нужно

$('#item1 span').text()
Богатый
источник
5

$('#item1').text(); or $('#item1').html(); отлично работает для id="item1"

dipraj.shahane
источник
5

Поскольку вы не указали атрибут для значения item, я предполагаю, что используется класс:

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

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

Убедитесь, что вы ожидаете загрузки DOM для использования вашего кода, в jQuery вы используете ready()функцию для этого:

<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
Вы изменили вопрос! Ваш ответ правильный для вашего вопроса, он указывал идентификатор, а не имя класса
Льюис
хорошо, если вы увидите первый комментарий под его именем, вы заметите, что он вообще не писал атрибут, это был <div 'item1'>, я, по-видимому, ошибся.
Франциско Акино
2

В javascript вы не используете document.getElementById('item1').innertext?

Сердитый
источник
0

$('#item1 span').html(); Это работает с моим кодом

Мохаммед Джавед
источник
0

ОЧЕНЬ ВАЖНО Дополнительная информация о разнице между .text () и .html ():

Если ваш селектор выбирает более одного элемента, например, у вас есть два пролета, например <span class="foo">bar1</span> <span class="foo">bar2</span> ,

затем

$('.foo').text();добавляет два текста и дает вам это; в то время как

$('.foo').html(); дает вам только один из них.

user3788051
источник
0

Вы можете использовать идентификатор в span непосредственно в вашем HTML.

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

Тогда ваш код JQuery будет

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

Кто-то помог мне проверить ошибки и обнаружил, что он использует val () вместо text (), невозможно использовать функцию val () в span. Так

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

вернет ноль.

Cristian
источник
-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>
Махеш
источник