使用 jQuery 从元素中获取特定文本内容
我需要使用 jQuery 从页面上的元素中提取一些文本,但我不知道如何获取我需要的部分。
这是我的 HTML:
<a href="#" class="song"> Soulstar <div>by <span class="artist">Musiq Soulchild</span></div> </a>
我想提取 .artist
的内容(在本例中为 Musiq Soulchild
)。首先,我尝试了这个:
var this_artist = $(this).children().text(); alert(this_artist);
这给了我 by Musiq Soulchild
(因为 this
是 元素)。因此,我假设我所要做的就是在
.children()
方法中指定一个选择器,以将其范围缩小到 .artist
类,如下所示
var this_artist = $(this).children(".artist").text(); alert(this_artist);
:给我...什么也没有。我也尝试过 $(this).children("span").text();
,同样,也没有返回任何内容。
我做错了什么?
I need to pull out some of the text from an element on my page, using jQuery, and I can't figure out how to get the piece I need.
Here's my HTML:
<a href="#" class="song"> Soulstar <div>by <span class="artist">Musiq Soulchild</span></div> </a>
I want to pull out the contents of .artist
(in this case, Musiq Soulchild
). First, I tried this:
var this_artist = $(this).children().text(); alert(this_artist);
That gives me by Musiq Soulchild
(since this
is the <a>
element). So then I assumed that all I had to do was specify a selector inside the .children()
method to narrow it down to the .artist
class, like this:
var this_artist = $(this).children(".artist").text(); alert(this_artist);
But that gives me...nothing. I've also tried $(this).children("span").text();
and, likewise, also get back nothing.
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
.children() 仅遍历直接子级 - 鉴于您的标记 .artist 不是直接子级。使用 find() 代替:
.children() only traverses the immediate children - given your markup .artist is not an immediate child. Use find() instead:
您的选择器不正确,因为
.artist
不是a
元素的直接子元素。相反,您需要使用$(this).find()
:示例小提琴
Your selector is incorrect since
.artist
is not a direct child of thea
element. Instead you need to use$(this).find()
:Example fiddle
您应该使用
.find
而不是.children
。.children
搜索直接子级,而.find
搜索后代。You should use
.find
instead of.children
..children
searches the immediate children, while.find
searches descendants.要么
或者
应该这样做...跨度是 div 的子级,而不是锚点。
either
or
should do it... the span is a child of div, not anchor.
如果这是链接的对象,则此代码返回范围文本:
If this is an object of your link, this code returns span text:
使用:
use: