如何在document.createElement(" span")之后将文本添加到span中?

时间:2014-10-24 06:34:25

标签: javascript jquery dom

我试图用函数.text()将文本写入元素范围,但是我收到了这个错误 UncaughtTypeError:undefined不是函数,我也尝试了函数append(),innerHtml(),createTextNode()但没有成功。

我做错了什么?

var closeSpan = document.createElement("span");
closeSpan.setAttribute("class","sr-only");
closeSpan.text("Close"); //UncaughtTypeError: undefined is not a function

OR

var closeSpan = document.createElement("span");
closeSpan.setAttribute("class","sr-only");
closeSpan.append("Close"); //UncaughtTypeError: undefined is not a function

4 个答案:

答案 0 :(得分:29)

由于您从纯DOM代码开始,我建议继续使用纯DOM代码:

var closeSpan = document.createElement("span");
closeSpan.setAttribute("class","sr-only");
closeSpan.textContent = "Close";

换句话说,只需将textContent设置为您想要的值即可。

如果与IE 8或更早版本的兼容性对您很重要,请注意那些旧版浏览器不存在textContent。对于那些较旧的用户,您必须使用innerText(适用于IE 8,但不属于任何标准)或innerHTML。请参阅textContent上的MDN页面(我链接到上面),以了解这些字段之间的差异。

答案 1 :(得分:1)

你也可以尝试这个

var closeSpan = document.createElement("span");
closeSpan.setAttribute("class","sr-only");
closeSpan.html("Close");

答案 2 :(得分:1)

如果您想要使用jquery,您可以使用closeSpan.appendChilddocument.createTextNode,如下所示:

var closeSpan = document.createElement("span");
closeSpan.setAttribute("class","sr-only");
closeSpan.appendChild(document.createTextNode("Close"));

此方法可最大限度地提高浏览器的兼容性。它适用于所有浏览器,包括旧版本的IE。

如果 想要使用jquery,可以在一行中执行此操作:

var closeSpan = $("<span></span>").addClass("sr-only").text("Close")[0];

答案 3 :(得分:0)

假设您要添加&#34; span&#34;标记为ID为#34; myDiv&#34;:

的div
var span = $("span"); // create element span
$(span).html("your text"); // add text
$("#myDiv").append($(span)); // append it to the div element