0

innerHTML を使用して要素にコンテンツを追加する場合、正しい構文は何ですか。以下は私の非動作例です:

   openNewWindow: function(content) {
popupWin = window.open(content,
    'open_window',
    'menubar, toolbar, location, directories, status, scrollbars, resizable, dependent, width=640, height=480, left=0, top=0')
},

for (var index in mv.exifImages) {
        ele.innerHTML += "<p onclick = openNewWindow(mv.exifImages[index]> image" + index + "</p>";
    }
4

3 に答える 3

1

それはそうですね。変数indexにはローカルスコープがあります

for (var index in mv.exifImages) {
        ele.innerHTML += "<p onclick = 'openNewWindow(\"" + mv.exifImages[index] + "\")'> image" + index + "</p>";
    }
于 2013-02-20T10:14:04.590 に答える
0

使用appendChild:

var myelement = document.getElementById("myelement");
myelement.appendChild( document.createTextNode("Example text inside myelemen") );

これは、たとえば onclick イベントを保持するため、innerHTML を上書きするよりも優れています

于 2013-02-20T10:14:03.357 に答える
0

innerHTML は問題ではありません。コードにコンテキストがありません。

    openNewWindow: function(content) {
        popupWin = window.open(content,
            'open_window',
            'menubar, toolbar, location, directories, status, scrollbars, resizable, dependent, width=640, height=480, left=0, top=0');
        // call to window.open ended here
    },
    // judging by the definition of openNewWindow and the comma above,
    // we are inside an object definition!

    // you cannot embed a for loop inside an object definition!!!
    for (var index in mv.exifImages) {
        ele.innerHTML += "<p onclick = openNewWindow(mv.exifImages[index]> image" + index + "</p>";
    }

for ループを適切な場所 (関数内など) に配置するか、実際に発生しているエラーを表示してください。

于 2013-02-20T10:59:43.973 に答える