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 に答える