0

jquery live 関数を使用して、ページ上に複数のウィジェットを作成しています...

$('#mybutton').live('click', function(){
var first = $('#win-doors-pvc fieldset:first').html();   
$(first).find('select option:selected').attr('selected',false);   
$('#win-doors-pvc').append('<fieldset>'+first+'</fieldset>');
});

上記のコードは、フィールドセット内のコンテンツを正常に再作成します。

var first を持つコンテンツには、選択コントロールが含まれています。を使用してその選択を操作したい

$(first).find('select option:selected').attr('selected',false); 

選択したものを選択解除します。

なぜ機能しないのですか?

4

1 に答える 1

1

http://jsfiddle.net/4MEbU/を参照してください:

$('#mybutton').live('click', function(){
var first = $('#win-doors-pvc fieldset:first');   
first.find('select option:selected').attr('selected',false);   
$('#win-doors-pvc').append('<fieldset>'+first.html()+'</fieldset>');
});

あなたがするのであなたのコードは機能しません

var first = $('#win-doors-pvc fieldset:first').html();  

次にfirst、htmlを含む文字列であるため$(first)、空のオブジェクトを提供します。

これの代わりにfirst、要素への参照である必要があります(そのhtmlコードではありません):

var first = $('#win-doors-pvc fieldset:first');  

とてもfirst.find('select option:selected').attr('selected',false);うまくいきます。

そのhtmlコードが必要な場合は、first.html()

$('#win-doors-pvc').append('<fieldset>'+first.html()+'</fieldset>')

編集

option新しい要素に最初の要素と同じものを選択させたい場合は、selectそれ自体を移動できます。

$('#mybutton').live('click', function(){
    var first = $('#win-doors-pvc fieldset:first');
    $('#win-doors-pvc').append(first);
    $('#win-doors-pvc').prepend(first.clone(true,true));
});
​

ここでそれを参照してください:http://jsfiddle.net/4MEbU/3/

于 2012-08-15T13:40:13.853 に答える