我试图获取链接的显示文字并最终使用这个标签,这个标签看起来不够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"
答案 0 :(得分:1)
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)
报告所有这些,希望它也可以帮助其他人:)