0

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

                    }
4

1 回答 1

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);
于 2013-08-14T20:13:13.443 回答