2

<script type="text/template>新しい要素を作成するために使用する内部 HTML があります。これらの作成された要素に ID を追加するにはどうすればよいですか?

<script type="text/template" id="element-template">
    <div class="element-container">
        <p>Template</p>
    </div>
</script>

望ましい結果:

<div id="my-element" class="element-container">
   <p>Template</p>
</div>

find('.element-container')次のコードは機能しますが、クラスが将来変更される可能性があるため、親で使用したくありません。

var template = $('#element-template').html();
$('#output').append(template).parent().find('.element-container').attr('id', 'my-element');​

ここで JSFiddle を見つけることができます: http://jsfiddle.net/RZrkB/1/

4

3 に答える 3

4

templatehtml の代わりに jquery オブジェクトを保持する変数を作成します。

そうすれば.clone()、IDを直接追加できます。

var template = $( $('#element-template').html() );

$('#output').append( template.clone().attr('id','my-element') );

http://jsfiddle.net/gaby/RZrkB/3/のデモ

于 2013-01-05T01:22:55.287 に答える
3

最初の子要素に id 属性を設定する必要があるだけの場合は、次のように jQuery .children()を使用して実行できます。

var template = $('#element-template').html();
var $output = $('#output');
$output.append(template).children(':first').attr('id', 'my-element');​

例: http://jsfiddle.net/fewds/RZrkB/4/

于 2013-01-05T01:22:41.977 に答える
2

使用できますfind('div:first')

$('#output').append($('#element-template').html())
.find('div:first').attr('id', 'my-element');​

于 2013-01-05T01:33:07.727 に答える