在jQuery对象中查找一个类并向其附加HTML ul

时间:2013-08-14 20:08:37

标签: jquery

在上面的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);

                    }

1 个答案:

答案 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);