我正在尝试用createElement替换下面的document.write。
document.createElement("a");
document.getElementById("a").innerHTML = "<pt:core.html pt:tag='img' id='a' src='/abc.gif'/>";
var c= document.getElementById("a").value;
如下 -
webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
webview.getSettings().setJavaScriptEnabled(true);
我正在获取document.getElementbyId为null或者不是第2行中的对象(我们使用.innerhtml)。您的意见得到赞赏。谢谢。
答案 0 :(得分:1)
您正在创建<a>
元素,而不是ID为"a"
的元素。
此外,您根本不需要在此使用document.getElementById()
,而是可以将document.createElement()
分配给变量,然后引用该变量:
var elem = document.createElement('a');
elem.innerHTML = ...
答案 1 :(得分:1)
document.createElement("a");
会创建一个<a>
元素,然后将其抛弃,因为您没有捕获其返回值。
document.getElementById("a")
从文档中获取id="a"
的元素。由于它返回null
,因此文档中没有这样的元素。
你可能想要更像
的东西var myAnchor = document.createElement("a");
myAnchor.innerHTML = ...
但是, "<pt:core.html pt:tag='img' id='a' src='/abc.gif'/>"
不是HTML。
答案 2 :(得分:0)
var element = document.createElement("a");
element.innerHTML = "<pt:core.html pt:tag='img' id='a' src='/abc.gif'/>";
document.body.appendChild(element);
答案 3 :(得分:0)
document.getElementById
在将其附加到DOM之前找不到该元素。您需要执行以下操作:
var a = document.createElement("a");
a.innerHTML = "<pt:core.html pt:tag='img' id='a' src='/abc.gif'/>";
document.body.appendChild(a);
在此之后,您可以使用document.getElementById("a")
。但是document.getElementById("a").value
并不是一件有用的事情。 .value
仅对用户输入元素有意义,例如文本框,<select>
菜单和复选框。