在上面的javascript对象中,我希望能够找到类.inject并附加一个ul,li。如何实现?
var $variable = $('<h5>'+ opts.fields.ac_firstname +' '+ opts.fields.ac_lastname+ ' ('+opts.fields.ac_source_id +')</h5><div class="inject"><append ul li here></div><p style="font-weight:bold; margin:1em 0 0;">View Summary</p><div class="bcCallToAction"><a href="" target="_blank">Visit google.com</a></div>');
试过这个但是工作
if(opts.fields.ac_othernames.length > 1){
$.each(opts.fields.ac_othernames, function(k, v){
altNameMarkup += '<li>' + v + '</li>';
});
var $ulAltNms = $('<ul>');
$ulAltNms.append(altNameMarkup);
$variable.find('.inject').append($ulAltNms);
}
答案 0 :(得分:2)
.find
获取当前集合中元素的后代,由选择器表达式过滤。这是行不通的,因为你想要的元素是集合的根。相反,请使用filter
来检索它:
$injectElement = $variable.filter('.inject'); //do something with this
此外,当您可以访问元素的DOM接口时,请停止摆弄原始标记。您可以使用以下命令向元素添加列表:
$ul = $('<ul />');
$.each(opts.fields.ac_othernames, function(k, v){
$ul.append($('<li />').html(v));
});
$injectElement.append($ul);