jquery从链接而不是列表中获取文本

时间:2012-07-17 08:11:46

标签: jquery

我试图获取链接的显示文字并最终使用这个标签,这个标签看起来不够jquery-ish。其他选择?

以下HTML

<div id="c-100001" class="cal-list-row cal-slug-item selected"><a href="" class="cal-name">Link Text</a></div>

以下jquery似乎非常不优雅,虽然它有效

string = $('#' + c_key).find('a').contents()[0].data
// string should be plain "Link Text" 

4 个答案:

答案 0 :(得分:1)

jsBin demo

var string = $('#' + c_key).find('a').text();

答案 1 :(得分:1)

试试这个

var string = $('#' + c_key).find('a').html();

答案 2 :(得分:0)

您可以使用

获取容器中的所有链接
var links = ("a", $("#containerElement"));

这将为您提供<a ..元素的列表。

然后你可以迭代它们或者只是取第一个并在它上面调用.text()如果我还没有作为jQuery元素包装,或者如果你检索纯HTML标记,你只需使用.innerHTML

示例:

var linkText = $("a", $("#myContainer"))[0].innerHTML;

var linkText = $("a", $("#main")).first().text();

答案 3 :(得分:0)

我正在回答我自己的问题,以便其他任何寻找正确答案的人都会找到它。 感谢所有人试图提供帮助,但这是由特定的jquery插件引起的问题,该插件正在修改默认的jquery行为

基本上由Stan Lemon(https://bitbucket.org/stanlemon/jquery-templates/)提供的jquery-template插件正在改变jquery行为,以便.text()似乎返回一个对象列表而不是文本从第一项开始。

向作者报告,虽然这个插件似乎已经不存在了......可能会迁移到jquery UI团队在这里开发的内容(http://wiki.jqueryui.com/w/page/37898666/Template)

报告所有这些,希望它也可以帮助其他人:)