[英]textContent returns undefined
我有一个表,要在其中提取活动项的文本。 我使用以下代码执行此操作:
var addedWorkout = $("#custDropDownMenuA").find(".dropdown-item.active");
console.log(addedWorkout);
addedWorkout = addedWorkout.textContent;
console.log(addedWorkout);
问题是我一直变得不确定。 我检查了控制台,它确实找到了我想要的元素而没有失败。
我对Java语言还比较陌生,但是经过一个多小时的Google搜索后,我找不到问题了,我也不明白为什么。 我知道,如果我使用以下代码对文本元素进行硬核化,就可以得到它:
document.querySelector("#selectiona1").textContent
但不适用于:
$("#selectiona1").textContent
这2和有什么区别? 我读到textContent是DOM的一部分,据我了解它与对象有关,根据我的控制台,我认为它是对象。 我做了一些疯狂的尝试,例如将我放入的对象放入querySelector中,但是没有任何效果。
用这行:
var addedWorkout = $("#custDropDownMenuA").find(".dropdown-item.active");
你使用jQuery选择.dropdown-item.active
内#custDropDownMenuA
,当你使用jQuery选择,你在响应得到一个jQuery对象。 因此, addedWorkout
是一个jQuery对象,并且jQuery对象通常不具有与标准HTMLElements相同的属性/方法。 ( querySelector
是检索元素的querySelector
Javascript方法)
在jQuery集合中选择第[0]
个项目,以获取第一个匹配元素:
var addedWorkout = $("#custDropDownMenuA").find(".dropdown-item.active")[0];
或者使用jQuery方法获取第一个匹配元素的文本,即.text()
:
var addedWorkoutText = addedWorkout.text();
(请注意,使用新变量-在可能的情况下,创建新变量比重新分配旧变量更容易阅读和调试代码)
您'addedWorkout'
是一个Jquery对象,而不是html元素。
要显示文本,请使用:
addedWorkout.text();
另外,您可以通过添加索引[0]来将'addedWorkout'
更改为html元素,如下所示:
addedWorkout[0].textContent;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.