当然这是jQuery,而不是我缺乏理解导致这个问题,但为了防止它是我的无能,有人可以告诉我如何在这个标签中返回文本“Acme”吗?
<div class="grid-56" id="1005" style="border:solid 1px lightgray;">
<div class="grid-20 bold">
<a href="#" class="id_select_company" id="company_name_dialog">
Acme
</a>
</div>
</div>
这似乎不起作用!
var company_name = $("#" + id).children($("#company_name_dialog")).html();
它产生
<a href="#" class="id_select_company" id="company_name_dialog">
Acme
</a>
我不想要锚标记,只需文本。
答案 0 :(得分:5)
使用find()
:
var company_name = $("#" + id).find("#company_name_dialog").html();
它也应该与children()
一起使用,但你不应该在其中传递一个jQuery对象,而是一个表达式,在本例中是'#company_name_dialog'
。
使用html()
或text()
并不重要,因为现在您选择的<a>
内部没有任何HTML。结果在两种情况下都相同,因为text()
只是从内容中剥离HTML标记。将text()
与原始代码结合使用会有效,但这可能是一种解决方法,您不会知道真正的问题是什么。
答案 1 :(得分:3)
尝试更直接的内容(特别是因为id属性应该与HTML文档唯一):
var company_name = $('#company_name_dialog').text();
答案 2 :(得分:2)
当然,使用.text()
功能:
$("#" + id).children($("#company_name_dialog")).text();