0

次のような jquery オブジェクトを作成しています。

 htmlCode = $("<div id='"+data.layoutDescriptions[i].id+"'></div");

主にこれを行っているときに、いくつかの要素が欠けているようです:

if(data.type == "ListView"){

    htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length +" multiple>");
    i = 0;
    while(i < data.listProps.length){

        htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");
        i++;
    }
    htmlCode.append("</SELECT>");

} 

data は Json オブジェクトです。

これを文字列として実行すると機能します。たとえば、代わりに

htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");

私はするだろう

htmlCode = htmlCode + "<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>";

何が欠けているのかを知りたいので、次のことを試したオブジェクトを確認したい:

alert(JQuery.htmlCode.stringify());

alert(htmlCode.html);

ネザー作業。

何か案は??

ありがとう。

4

4 に答える 4

5

コードの最初の行

htmlCode = $("<div id='"+data.layoutDescriptions[i].id+"'></div");

htmlCode単一の要素を含む jQuery オブジェクトとして変数を宣言します<div>(関数に渡した HTML によって定義されます)。

電話すると

htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length +" multiple>");

<select>要素 (関数に渡された HTML によって定義されます) をその要素の末尾に追加していますが、<div>これは正常に機能します。

ただし、電話するときは

htmlCode.append("<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>");

また、必要な要素ではなく、要素にan<option>を追加しています。<div><select>

.append()jQuery オブジェクトと関数を使用して HTML 文字列を作成しようとしているようですが、それは jQuery が行うことではありません。jQuery は実際の要素で動作し、HTML を渡して要素を作成できるようにするだけです。

于 2012-08-13T14:04:03.610 に答える
1

DOM 要素の文字列表現を取得するには、この他の質問に投稿されたものを使用できます。

ただし、他の回答 (console.log または Firebug) で提供されている方法を使用すると、コードを変更しなくても機能するため、より簡単な選択のようです。

于 2012-08-13T14:01:28.683 に答える
0

次のようなものを試してください:

if(data.type == "ListView"){
   var options;
   htmlCode.append("<SELECT property='"+ data.property +"' size="+ data.listProps.length    +" multiple></SELECT>");
   i = 0;
   while(i < data.listProps.length){

       options+="<OPTION value='"+ i+1 +"'>"+ data.listProps[i] +"</OPTION>";
       i++;
   }
   $(htmlCode).find('select').html(options);

} 

デモデモはこちら

于 2012-08-13T14:28:56.583 に答える
0

Firefox/Firebug を使用してオブジェクトを表示し、参照し、変更する必要があります...

于 2012-08-13T14:03:04.770 に答える