Я пытаюсь получить доступ ко всем видимым значениям на моей странице, заключенной в теги span
. Я использую селектор $(rows[i]).find("span:visible")[0]
([i]
потому что я выполняю итерацию через массив), и я возвращал такой набор:
<span class="size">7</span>
<span class="size">29</span>
<span class="size">14</span>
Я бы хотел, чтобы получить эти номера сами, свободные от тегов. Но если я изменю свой селектор на
$(rows[i]).find("span:visible")[0].innerHTML
$(rows[i]).find("span:visible")[0].text
$(rows[i]).find("span:visible")[0].textContent
$(rows[i]).find("span:visible")[0].html
или любой другой селектор, который, как мне кажется, должен работать, я возвращаю "undefined" или "не могу получить свойство X неопределенных" ошибок.
Что я должен здесь использовать?
Это должно работать... и это работает:
console.log($(".1").find("span:visible")[0]); //logs the first span
console.log($(".1").find("span:visible")[0].text); //logs the text content of the first span
//in a loop - logs the content of each span in jm
$(".1").find("span:visible").each( function() {
console.log($(this).text());
});
Я ожидаю, что там где-то в вашем коде есть опечатка, которую вам придется найти и исправить.
Селектор получает вам набор jQuery соответствующих интервалов. Используя [0]
и такие на нем, вы получаете необработанный элемент DOM. Если вам нужен текст каждого отдельного интервала, используйте .eq(x).text()
:
var spans = $(rows[i]).find("span:visible");
console.log("Text of first matching span: " + spans.eq(0).text());
console.log("Text of second matching span: " + spans.eq(1).text());
// ...
Или в цикле:
$(rows[i]).find("span:visible").each(function(index) {
console.log("Text of span " + index + ": " + $(this).text());
});
вы можете использовать
$(rows[i]).find("span:visible")[0].html();
ИЛИ
$(rows[i]).find("span:visible")[0].text();
или
$(rows[i]).find("span:visible")[0].get().innerHTML;
$(rows[i]).find("span:visible").html()