0

jQuery から奇妙な動作が発生しています。jQuery 1.10.2Google の ajax API から実行しています。

jQueryのドキュメントによると、関数はテキストを挿入する前.html()に関数を呼び出すことになっています。.empty()私の問題は、一意の ID を持つ div コンテナーがあり、.html()関数を使用してテキストを挿入すると、デフォルトのテキストがクリアされ、目的のテキストが挿入されることです。

<div id="xmlContent">
    this is a test <!-- Default Text -->
</div>

しかし、「テキストの追加ボタン」をもう一度クリックすると、新しいテキストは、以前に生成されたコンテンツを置き換えるのではなく、単に追加されます。さらに、ボタンをクリックし続けると、新しいコンテンツが最初の子要素内にネストされます。

<div id="xmlContent">
    <code>
        &lt;code&gt;
            &lt;name&gt;fred<br>
        <address></address><br>
        <issitelocation></issitelocation><br>
    </code>
    <name>fred</name><br>
    <address>addres</address><br>
    <issitelocation></issitelocation><br>
</div>

関連トピックで.empty()は、デフォルトのテキストをクリアしますが、生成されたコンテンツのクリアは拒否します。

私はjsfiddleにコードを持っています

またコードはこちら

function generateXML() {
    xmlHTML += '<name>' + $('#locationName').val() + '</name><br />';
    xmlHTML += '<address>' + $('#address').val() + '</address><br />';
    xmlHTML += '<isSiteLocation>' + $('#isPathwaySite').val() + '</isSiteLocation><br />';
    xmlHTML = xmlHTML.replace('<','&lt;').replace('>','&gt;');
    xmlHTML = '<code>'+xmlHTML+'</code>';
}


function populateXMLContainer() {
    $('#xmlContent').html(xmlHTML);
}

$(function() {
    $('#generateXML').click(function() {
        generateXML();
        populateXMLContainer();
    });
});

助けてください、私は何が間違っているのかわかりません。

明確化メモ&lt;および の理由は、&gt;自分で xml ジェネレーターを作成しようとしているからです。

4

1 に答える 1

2

これは、関数 generateXML の最初の行が、最初に行ったものの連結を行っているためです。xmlHTML の最初のパスでは空の文字列であり、その後のすべてのパスでは前回の値だけ増加しています。

変化する:

xmlHTML += '<name>' + $('#locationName').val() + '</name><br />';

することが:

xmlHTML = '<name>' + $('#locationName').val() + '</name><br />';
于 2013-07-19T20:50:56.603 に答える