jQuery - text() method?
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 在控制台中返回"undefined"。它仅在 $(".artist") 上工作正常,但当我使用 [i] 或任何其他其他内容时则不然。我在这里错过了什么?我还能如何在选择器中获取文本值?
通过使用 jQuery 对象上的[]
运算符,您可以访问 jQuery 找到的原始元素节点。这个原始元素不再有jQuery方法,也没有text
属性。
如果要从 jQuery 对象中获取单个元素并保留 jQuery 包装器,请使用eq
方法。
var artistElement = $(".artist").eq(i);
artistElement.text(); // gets the text content of the element
您发布的代码也不是很优化。例如,每次循环迭代时,您都会一遍又一遍地搜索文档中具有类 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());
});
var currentArtist = currentElement.text;
应该是:
var currentArtist = currentElement.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);
}
.text()
显示用户可见的 HTML 元素或一组 HTML 元素的文本。
- 如何将输入(type=text)从html表单传递到javascript函数
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 在文本区域中使用jQuery.text()保持换行符
- 用Javascript添加带有#text的tr元素
- 当用户按下回车键时,自动在text区域/text中插入消息
- 修正案'text'的元素
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- W3验证器->使用<脚本类型=“;text/javascript”>在html的正文中
- document.applet.method在Mounatin Lion上抛出safari 6+JDK7异常
- 当method=post时,jQueryAjax返回404
- 我如何在INPUT TEXT中使用这个Javascript和jQuery
- <text区域>在我的html中包含event.keycode==13之后,wrap就不起作用了
- 从所有下拉菜单中选择val和text
- 调用laravel{{action(Controller@method}}通过传递vue.js数组中的变量
- 节点,express应用程序返回text/javascript响应头(Content-Type),尽管设置了applic
- .val()返回未定义的.text返回随机代码
- JSTree's data.rslt.obj.text()返回一个文本数组,而不是所需节点的文本
- jQuery - text() method?
- jQuery text() Method
- Object #<Text> has no method 'getBoundingClientRec