2015-12-29 4 views
-3

У меня есть следующий HTML (я пропустил импорт JQuery):Получение текстового содержимого HTML-тега с помощью JQuery селекторы

<html> 
    <body> 
    <span class="element_to_read">Ciao</span> <br/> 
    <span class="element_to_read">Hello</span> 
    </body> 
</html> 

И имеют следующий JavaScript бегущего

console.log($(".element_to_read")); 

Что правильно возвращается [span.element_to_read, span.element_to_read]. Я попытался выполнить .text(), .html(), .value (путем доступа к элементу, содержащемуся в списке, `$ (". Element_to_read ") [index]), но, судя по всему, я не могу получить контент (текстовые значения) выбранного элементов (это будет Ciao и Hello).

Как это сделать? Спасибо

EDIT: Как всегда, люди здесь не способны читать весь вопрос сверху вниз. «Я попытался выполнить , .html(), .value над элементами ...» означает, что я знаю, как выполнять итерацию по массиву, но я не знаю, как читать значения (Ciao, Hello) в выбранных элементах (два span классы).

EDIT2: Спасибо за все downvotes. По-видимому, вопросы, которые слишком легки, должны быть скрыты.

+0

Вы должны повторять его, потому что его возвращая 'array' значений. –

+0

Когда вы хотите получить innerText? Добавить полный код JS – Tushar

+0

Почему, по-вашему, '.text()' не работает? – undefined

ответ

3

Вам потребуется будет перебирать результат, возвращаемый подобным class селектором, как он будет возвращать array значений.

Затем, если вы просто хотите, чтобы текстовые значения, используйте .text() следующим образом:

$(".element_to_read").each(function(){ 
    alert($(this).text()); 
}); 

DEMO

Или, если вы хотите, чтобы получить текстовое значение с помощью вложенных тегов использовать .html(), следующим образом:

$(".element_to_read").each(function(){ 
    alert($(this).html()); 
}); 

DEMO

Хотя во время итерации вы можете создать array или другое string, чтобы прочитать комбинированные значения в соответствии с вашими требованиями.

1

Использование .text()

$(".element_to_read").each(function(){ 
    alert($(this).text()); 
}); 

Для извлечения InnerText.

2

WORKING FIDDLE

Это может работать, как показано на FIDDLE.

console.log($("span").text()); 

UPDATED FIDDLE

$(document).ready(function(){ 
    var info=[]; 
    $("span").each(function(){ 
     info.push($(this).text()); 

    }); 
    console.log(info); 
}); 
+0

Приятный, но мне нужно иметь их как отдельные значения. Наличие их в массиве классно, но мне нужно что-то вроде '$ (" span ") [0] .text()' (в вашем примере), которое невозможно сделать. – Masiar

+0

@Masiar Пожалуйста, проверьте обновленную скрипку. – Hemal

1

Попробуйте следующее. Это должно работать нормально.

var text=[]; 
 
$('.element_to_read').each(function(){ 
 
    text.push($(this).text()); 
 
}) 
 
alert(text.join());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="element_to_read">Ciao</span> <br/> 
 
<span class="element_to_read">Hello</span>

Смежные вопросы