![](/img/trans.png)
[英]Why element.innerHTML = string with date info doesn't work?
[英]Why can't I assign element.innerHTML?
為什么不能some_var.innerHTML
的引用存儲到變量中然后進行修改?
什么規則支配着這個?
HTML
<div id = "out">
test
</div>
如果我直接這樣做,它會起作用。
var out = document.getElementById("out");
var res = out.innerHTML;
res = "foo";
您將其分配給res
,然后重新分配res。 這段代碼不給innerHTML
分配任何東西。
out.innerHTML = "foo";
這就是您更改innerHTML的方式。
您的代碼正在運行。 只是您要在res
中存儲innerHTML
,然后在下一行覆蓋它。 同樣,在為它賦值"foo"
之后,您不會對res
執行任何操作。
您還必須了解,在存儲
innerHTML
,您正在存儲數據的COPY。 如果要修改innerHTML
,則必須寫回它。
本示例讀取第一個div
的值,然后將其加foo
寫入第二個div。
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 id = "out">test</div>
因為分配給res
與分配給innerHTML
; 即使您先前innerHTML
分配給res
。
當您說res = element.innerHTML
,您是將innerHTML
的內容分配給res
。 然后,當您說res = "something else"
,您正在更改分配給res
對象。
說res = element.innerHTML
並不意味着對所做的任何修改res
都反映在innerHTML
。
因為在下面的代碼中,innerHTML值即test將分配給變量res
。
var out = document.getElementById("out").;
var res = out.innerHTML;
這段代碼不過是,
var res = document.getElementById("out").innerHTML; // res = "test"
之后,您將用“ foo”覆蓋res(即測試)的值。
如果您使用jQuery,則只需執行以下操作:
$("#out").html("foo");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.