createElement替换document.write

时间:2015-05-08 21:10:33

标签: javascript

我正在尝试用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)。您的意见得到赞赏。谢谢。

4 个答案:

答案 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>菜单和复选框。