2

jsFiddle に非常に単純化された例を載せました。

基本的に、私は自分の HTML を構築し、完了したらすべてを追加しようとしています。JS は次のようになります。

var label = 'My label',
    var checkbox = $('<input type="checkbox">').prop({
                id: 'checkboxId',
                name: 'checkboxId',
                checked: visible
            });
    listItem = ('<li class="customise_option"><label>'+checkbox+' '+label+'</label></li>');

$('#mylist').append(checkbox);
$('#myotherlist').append(listItem);

追加は問題ありませんが、変数に含めよcheckboxうとすると、次のようになります。checkboxlistItem

[object Object] My label

そのため、それ自体では、jQuery は my を文字列として追加しても問題ありませんが、それでcheckbox何かをしようとすると、それはオブジェクトとして扱われます。

周りを見回すと、同様の質問がいくつかありますが、(DOM に既に存在するものを操作するのではなく) JavaScript ですべてを作成しているため、私が望むことを行う方法が必要なようです。問題は、私がそれを理解できないことです。

編集

問題を完全に理解していないため、元の例を単純化しすぎました。jsFiddleを更新して、多数checkboxのプロパティを追加できるようにする必要があることを示しました。したがって、checkedプロパティは別のものに依存します。$そのため、 jQueryの機能にアクセスできるようにする必要がありpropます(と思います)。

4

4 に答える 4

2

checkbox文字列にstring + checkboxキャストして(これにより が得られます)、それを追加すると、jquery オブジェクトになります。そこでも使う必要があります。checkbox[object Object]append()

于 2012-10-24T14:24:57.393 に答える
2
var label = 'My label',
    checkbox = '<input type="checkbox">';
    listItem = '<li class="customise_option"><label>'+checkbox+' '+label+'</label></li>';

$('#mylist').append(checkbox);
$('#myotherlist').append(listItem);

これがjsfiddleです。HTML マークアップを追加する場合、必要なのは文字列だけです。あなたは遠くにいませんでした。

于 2012-10-24T14:24:28.077 に答える
0

これは、チェックボックスがオブジェクトであるためです。このコードでは、動作します

var label = 'マイ ラベル'、checkbox = ''、listItem = ''+checkbox+' '+label+'';

$('#mylist').append(チェックボックス); $('#myotherlist').append(listItem);

于 2012-10-24T14:26:38.593 に答える
0

その理由checkbox = $('<input type="checkbox">')は、jquery オブジェクトを返すためです。

jquery オブジェクトに固執してtext()etc のようなメソッドを使用するか、HTML の文字列表現を追加することに固執します。混ぜないでください。

于 2012-10-24T14:25:05.587 に答える