为什么我不能将some_var.innerHTML
的引用存储到变量然后修改它?
这是什么规则?
HTML
<div id = "out">
test
</div>
如果我直接这样做,它会起作用。
var out = document.getElementById("out");
var res = out.innerHTML;
res = "foo";
答案 0 :(得分:1)
您;重新将其分配给res
,然后重新分配资源。此代码不会向innerHTML
分配任何内容。
out.innerHTML = "foo";
这是你改变innerHTML的方法。
答案 1 :(得分:1)
您的代码正常运行。只是您将innerHTML
存储在res
中,然后在下一行覆盖它。此外,在为res
分配值"foo"
之后,您无法对innerHTML
执行任何操作。
您还必须了解,当您存储
innerHTML
时,您正在收集数据的COPY。如果要修改div
, 你必须回信。
此示例读取第一个foo
s值,然后将该var out = document.getElementById("out");
var res = out.innerHTML // Store the HTML
res = res + " foo"; // Adjust the data
out.innerHTML = res; // Write the new data back to the HTML element
加到第二个div。
<div id = "out">test</div>
&#13;
// Tell the media scanner about the new file so that it is
// immediately available to the user.
MediaScannerConnection.scanFile(this,
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
&#13;
答案 2 :(得分:1)
因为分配到res
与分配给innerHTML
不同;即使您之前已将innerHTML
分配给res
。
当您说res = element.innerHTML
时,您将innerHTML
的内容分配给res
。然后,当您说res = "something else"
时,您正在更改res
所分配的内容。
说res = element.innerHTML
不意味着对res
所做的任何更改都会反映在innerHTML
中。
答案 3 :(得分:1)
因为在下面的代码中,innerHTML vaue,即test将被赋值给变量res
。
var out = document.getElementById("out").;
var res = out.innerHTML;
此代码只是,
var res = document.getElementById("out").innerHTML; // res = "test"
之后你用“foo”覆盖res(即test)的值。
答案 4 :(得分:0)
如果你使用jQuery,你可以简单地执行以下操作:
$("#out").html("foo");