0

object.innertHTMLを使用してHTML構造を設定しています。ただし、初期のTR要素とTD要素は設定されていません。以下はコードです。

 var previousInnerHTML = new String();
 previousInnerHTML = previousInnerHTML.concat("<TR class='evenrow ' __eventAdded='true' isSubTotalRow='false' usable='false' index='40'><TD><INPUT id=check_table1 onclick=WebForm.markRowForSelection(event) type=checkbox xformstype='checkbox' doEBIValidate='false' __cID='c514' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle dataBoundElement='true' selectnotifier='true' trueValue='null' falseValue='null'></INPUT></TD><TD><DIV id=xfe2 class=fieldsbox><INPUT id=output2 class=input title='Provide value for Output2' type=text xformstype='input' doEBIValidate='false' __parent='table1' __cID='c515' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Provide value for Output2' xql='.//ID' ref='.//ID' _inTable='true' dataBoundElement='true'></DIV></TD><TD><DIV id=xfe4 class=fieldsbox><INPUT id=output4 class='input output' title='Value for Output4' readOnly xformstype='output' doEBIValidate='false' __parent='table1' __cID='c516' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Value for Output4' xql='EMPID' isOutputControl='true' ref='EMPID' _inTable='true' dataBoundElement='true'></DIV></TD><TD><DIV id=xfe6 class=fieldsbox><INPUT id=output5 class='input output' title='Value for Output5' readOnly xformstype='output' doEBIValidate='false' __parent='table1' __cID='c517' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Value for Output5' xql='ROLEID' isOutputControl='true' ref='ROLEID' _inTable='true' dataBoundElement='true'></DIV></TD><TD><DIV id=xfe8 class=fieldsbox><INPUT id=output3 class='input output' title='Value for Output3' readOnly xformstype='output' doEBIValidate='false' __parent='table1' __cID='c518' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Value for Output3' xql='num1' isOutputControl='true' ref='num1' _inTable='true' dataBoundElement='true'></DIV></TD><TD><DIV id=xfe10 class=fieldsbox><INPUT id=output1 class='input output' title='Value for Output1' readOnly xformstype='output' doEBIValidate='false' __parent='table1' __cID='c519' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Value for Output1' xql='num2' isOutputControl='true' ref='num2' _inTable='true' dataBoundElement='true'></DIV></TD></TR>");

 var buttonObject = document.createElement("");
 buttonObject.innerHTML = previousInnerHTML;

しかし、出力の取得は

"<INPUT id=check_table1 onclick=WebForm.markRowForSelection(event) type=checkbox xformstype="checkbox" doEBIValidate="false" __cID="c514" transactional="true" model="null" freemodel="false" databound="true" freeform="false" _initialized="true" originalTitle dataBoundElement="true" selectnotifier="true" trueValue="null" falseValue="null"></INPUT></TD><TD>
<DIV id=xfe2 class=fieldsbox><INPUT id=output2 class=input title="Provide value for Output2" type=text xformstype="input" doEBIValidate="false" __parent="table1" __cID="c515" transactional="true" model="null" freemodel="false" databound="true" freeform="false" _initialized="true" originalTitle="Provide value for Output2" xql=".//ID" ref=".//ID" _inTable="true" dataBoundElement="true"></DIV></TD><TD>
<DIV id=xfe4 class=fieldsbox><INPUT id=output4 class="input output" title="Value for Output4" readOnly xformstype="output" doEBIValidate="false" __parent="table1" __cID="c516" transactional="true" model="null" freemodel="false" databound="true" freeform="false" _initialized="true" originalTitle="Value for Output4" xql="EMPID" isOutputControl="true" ref="EMPID" _inTable="true" dataBoundElement="true"></DIV></TD><TD>
<DIV id=xfe6 class=fieldsbox><INPUT id=output5 class="input output" title="Value for Output5" readOnly xformstype="output" doEBIValidate="false" __parent="table1" __cID="c517" transactional="true" model="null" freemodel="false" databound="true" freeform="false" _initialized="true" originalTitle="Value for Output5" xql="ROLEID" isOutputControl="true" ref="ROLEID" _inTable="true" dataBoundElement="true"></DIV></TD><TD>
<DIV id=xfe8 class=fieldsbox><INPUT id=output3 class="input output" title="Value for Output3" readOnly xformstype="output" doEBIValidate="false" __parent="table1" __cID="c518" transactional="true" model="null" freemodel="false" databound="true" freeform="false" _initialized="true" originalTitle="Value for Output3" xql="num1" isOutputControl="true" ref="num1" _inTable="true" dataBoundElement="true"></DIV></TD><TD>
<DIV id=xfe10 class=fieldsbox><INPUT id=output1 class="input output" title="Value for Output1" readOnly xformstype="output" doEBIValidate="false" __parent="table1" __cID="c519" transactional="true" model="null" freemodel="false" databound="true" freeform="false" _initialized="true" originalTitle="Value for Output1" xql="num2" isOutputControl="true" ref="num2" _inTable="true" dataBoundElement="true"></DIV></TD></TR>"

最初のTR要素とTD要素が欠落しています。理由は何でしょうか

4

2 に答える 2

2

.innerHTML行っているようにHTMLの大きなチャンクを挿入し、親オブジェクト(テーブル)全体を置き換えたくない場合は、を使用します.insertAdjacentHTML()

デモ: jsFiddle

脚本:

var containerObject = document.getElementById("table1"); 
containerObject.insertAdjacentHTML( 'beforeEnd', "<TR class='evenrow ' __eventAdded='true' isSubTotalRow='false' usable='false' index='40'><TD><INPUT id=check_table1 onclick=WebForm.markRowForSelection(event) type=checkbox xformstype='checkbox' doEBIValidate='false' __cID='c514' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle dataBoundElement='true' selectnotifier='true' trueValue='null' falseValue='null'></INPUT></TD><TD><DIV id=xfe2 class=fieldsbox><INPUT id=output2 class=input title='Provide value for Output2' type=text xformstype='input' doEBIValidate='false' __parent='table1' __cID='c515' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Provide value for Output2' xql='.//ID' ref='.//ID' _inTable='true' dataBoundElement='true'></DIV></TD><TD><DIV id=xfe4 class=fieldsbox><INPUT id=output4 class='input output' title='Value for Output4' readOnly xformstype='output' doEBIValidate='false' __parent='table1' __cID='c516' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Value for Output4' xql='EMPID' isOutputControl='true' ref='EMPID' _inTable='true' dataBoundElement='true'></DIV></TD><TD><DIV id=xfe6 class=fieldsbox><INPUT id=output5 class='input output' title='Value for Output5' readOnly xformstype='output' doEBIValidate='false' __parent='table1' __cID='c517' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Value for Output5' xql='ROLEID' isOutputControl='true' ref='ROLEID' _inTable='true' dataBoundElement='true'></DIV></TD><TD><DIV id=xfe8 class=fieldsbox><INPUT id=output3 class='input output' title='Value for Output3' readOnly xformstype='output' doEBIValidate='false' __parent='table1' __cID='c518' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Value for Output3' xql='num1' isOutputControl='true' ref='num1' _inTable='true' dataBoundElement='true'></DIV></TD><TD><DIV id=xfe10 class=fieldsbox><INPUT id=output1 class='input output' title='Value for Output1' readOnly xformstype='output' doEBIValidate='false' __parent='table1' __cID='c519' transactional='true' model='null' freemodel='false' databound='true' freeform='false' _initialized='true' originalTitle='Value for Output1' xql='num2' isOutputControl='true' ref='num2' _inTable='true' dataBoundElement='true'></DIV></TD></TR>")

HTML:

<table id="table1">
</table>
于 2013-02-09T07:37:50.350 に答える
1

「空白の」DOM要素を作成しようとすると、JavaScriptコンソールでエラーが発生します。あなたはできませんdocument.createElement("")。テーブルを作成しようとしているようですので、次のことを試してください。

 var buttonObject = document.createElement("table");

http://jsfiddle.net/fCBne/

于 2013-02-09T07:16:54.987 に答える