我不明白为什么JQuery
说lab.find()不是函数。我正在寻找这个html中的文本:
<div class="btn-group col-md-4" data-toggle="buttons">
<label data-pk="4" id="languagebuttonselect1" class="btn prmr-btn-empty top-margin left-margin center-elements target_language_choice active" style="padding: 8px; color: black; width: 100%;">
<input type="checkbox" name="target_languages" value="4" autocomplete="off">
<img align="left" width="30px" style="margin-bottom: 0;" src="/static/img/flags/550px\gb.png">
<b class="left-margin" style="text-align: left">English</b>
</label>
</div>
当标签(标签)的类为active
时,我想获得文本(在本例中为"English")。
function refreshSummaryTaretLanguages(){
var actives = $('.target_language_choice.active');
var summ_ul_targ_langs = $('#summary_target_languages > ul');
summ_ul_targ_langs.empty();
$.each(actives,function (_,lab) {
summ_ul_targ_langs.append('<li>'+lab.find('b').text()+'</li>');
})
}
不幸的是,它在这样的标签中找不到任何东西,我不知道该怎么做。
发布于 2016-11-30 15:25:49
jQuery传递数组元素的$.each
回调,所以您得到的是DOM节点,而不是jQuery对象。
只在您已经拥有的.each()
对象上使用jQuery方法会更简单:
$(actives).each(function() {
summ_ul_targ_langs.append('<li>'+$(this).find('b').text()+'</li>');
});
.each()
回调基本上与$.each()
执行相同的任务,并且也将传递给元素。它还安排调用回调,以便this
也引用元素。将this
包装为$(this)
可以为您提供一个jQuery对象,您可以从该对象调用.find()
。
https://stackoverflow.com/questions/40892001
复制相似问题