使用jQuery访问标记中的文本
使用jQuery访问标记中的文本,jquery,css-selectors,Jquery,Css Selectors,我有几个html结构,如下所示: <div id="some_id" class="bio"> <h3><img src="some.jpg" alt="alt_text" /><br /> <a name="Name"></a></h3> <div class="bio_info"> <h3 class="bio_name">NAME TEXT</h3
我有几个html结构,如下所示:
<div id="some_id" class="bio">
<h3><img src="some.jpg" alt="alt_text" /><br />
<a name="Name"></a></h3>
<div class="bio_info">
<h3 class="bio_name">NAME TEXT</h3>
<p>BIO TEXT</p>
<div class="add_bio">MORE BIO</div>
</div>
<p><span class="add_bio_toggle">more</span></p>
</div>
无济于事。我错过了什么
[example code]
//get the national leadership, by column
$('#national_leadership .left_col .bio').each(function(){
//create new object to add to nat_leadership array
var bio = new Object();
bio.id = $(this).attr('id');
bio.name = $('.bio_info', this).find('.bio_name').text();
...
它可以找到id,但返回一个空字符串作为名称。应该可以
$('.bio_name').text();
如果您正在循环,您可以使用
$(this).text()
然后请参见……jquery find()
OP的后期更新后编辑: 每个的示例:
$(".bio").each( function()
{
var bio_name = $(this).find(".bio_name").text()
var bio_text = $(this).find(".bio_name").next().text());
var more_bio = $(this).find(".add_bio").text());
});
这将循环遍历bio_info div中的元素,如果是文本节点,则向内容发出警报(您可能希望执行警报以外的其他操作):
为了进一步阅读,请浏览此页,但这不会选择页面中的所有.bio_name元素吗?danwoods如果您正在浏览,则可以执行$(this).text();我知道我可以通过在选择器中硬编码id来访问文本,但我猜是“这个”让我。。。请参阅上面的编辑和我正在尝试的代码示例。
$('bio).find('.bio_name').text();
$(".bio").each( function()
{
var bio_name = $(this).find(".bio_name").text()
var bio_text = $(this).find(".bio_name").next().text());
var more_bio = $(this).find(".add_bio").text());
});
$(function() {
$(".bio_info").contents().filter(function() {
if(this.nodeType == 1) {
alert($(this).text());
}
});
});