jQuery - text() 方法?
jQuery - text() method?
作为 jquery 和 javascript 的新手,我似乎无法理解 .text() 方法的真正工作原理。我通读了 jQuery 文档,但仍然无法弄明白。
for (var i=0; i < arrayLength; i++){
var currentElement = $(".artist")[i];
var currentArtist = currentElement.text;
console.log(currentElement);
console.log(currentArtist);
}
currentArtist returns "undefined" 在控制台中。它单独在 $(".artist") 上工作正常,但当我使用 [i] 或任何其他与此相关的内容时就不行了。我在这里错过了什么?我还能如何在选择器中获取文本值?
.text()
显示用户可见的 html 元素或一组 html 元素的文本。
var currentArtist = currentElement.text;
应该是:
var currentArtist = currentElement.text();
通过在 jQuery 对象上使用 []
运算符,您可以访问 jQuery 找到的原始元素节点。这个原始元素不再有 jQuery 方法,也没有 text
属性.
如果您想从 jQuery 对象获取单个元素并保留 jQuery 包装器,请使用 eq
方法。
var artistElement = $(".artist").eq(i);
artistElement.text(); // gets the text content of the element
您发布的代码也不是很优化。例如,在每次循环迭代中,您都在一遍又一遍地搜索文档以查找具有 class artist
的元素。最好在执行循环之前将该搜索结果缓存在一个变量中。如果循环遍历所有 .artist
元素,您可以使用 jQuery 的 each
方法。
$(".artist").each(function () {
var artist = $(this); // this poits to the raw element thus wrapping into jQuery object
console.log(artist.text());
});
你应该使用 each():
$(".artist").each(function(i,val){
var currentArtist = $(val).text();
console.log(val);
console.log(currentArtist);
});
$(".artist")
生成一个 jQuery 对象,可能是这样的:
[div, div, div, div, prevObject: jQuery.fn.jQuery.init, context: document, selector: ".artist"...]
所以 $(".artist")[i]
的结果是 HTMLElement
并且没有 text
方法,这就是为什么你得到 undefined
另外text()是一个函数,后面可以跟()
但是如果你想保留 for 循环,你可以这样做
for (var i=0; i < arrayLength; i++){
var currentElement = $(".artist")[i];
var currentArtist = $(currentElement).text();
console.log(currentElement);
console.log(currentArtist);
}
作为 jquery 和 javascript 的新手,我似乎无法理解 .text() 方法的真正工作原理。我通读了 jQuery 文档,但仍然无法弄明白。
for (var i=0; i < arrayLength; i++){
var currentElement = $(".artist")[i];
var currentArtist = currentElement.text;
console.log(currentElement);
console.log(currentArtist);
}
currentArtist returns "undefined" 在控制台中。它单独在 $(".artist") 上工作正常,但当我使用 [i] 或任何其他与此相关的内容时就不行了。我在这里错过了什么?我还能如何在选择器中获取文本值?
.text()
显示用户可见的 html 元素或一组 html 元素的文本。
var currentArtist = currentElement.text;
应该是:
var currentArtist = currentElement.text();
通过在 jQuery 对象上使用 []
运算符,您可以访问 jQuery 找到的原始元素节点。这个原始元素不再有 jQuery 方法,也没有 text
属性.
如果您想从 jQuery 对象获取单个元素并保留 jQuery 包装器,请使用 eq
方法。
var artistElement = $(".artist").eq(i);
artistElement.text(); // gets the text content of the element
您发布的代码也不是很优化。例如,在每次循环迭代中,您都在一遍又一遍地搜索文档以查找具有 class artist
的元素。最好在执行循环之前将该搜索结果缓存在一个变量中。如果循环遍历所有 .artist
元素,您可以使用 jQuery 的 each
方法。
$(".artist").each(function () {
var artist = $(this); // this poits to the raw element thus wrapping into jQuery object
console.log(artist.text());
});
你应该使用 each():
$(".artist").each(function(i,val){
var currentArtist = $(val).text();
console.log(val);
console.log(currentArtist);
});
$(".artist")
生成一个 jQuery 对象,可能是这样的:
[div, div, div, div, prevObject: jQuery.fn.jQuery.init, context: document, selector: ".artist"...]
所以 $(".artist")[i]
的结果是 HTMLElement
并且没有 text
方法,这就是为什么你得到 undefined
另外text()是一个函数,后面可以跟()
但是如果你想保留 for 循环,你可以这样做
for (var i=0; i < arrayLength; i++){
var currentElement = $(".artist")[i];
var currentArtist = $(currentElement).text();
console.log(currentElement);
console.log(currentArtist);
}