我试图用函数.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
答案 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.appendChild
和document.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;:
的divvar span = $("span"); // create element span
$(span).html("your text"); // add text
$("#myDiv").append($(span)); // append it to the div element