繁体   English   中英

textContent返回未定义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM