使用.text()jquery显示跨度内的文本

use*_*514 1 html jquery text

<!DOCTYPE html>
<html>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<div id="hel"></div>
<script>
txt="<script>alert('Test');</script>";
var headerIcon = '<div>hi</div>';
var messageBox = $("<div class='textDiv'><span class='sp'></span></div>");

$(document).ready(function(){
messageBox.text(txt);
//$(".textDiv .sp").text(txt);
$('#hel').append(headerIcon,messageBox);

});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

输出是

hi
<script>alert("Test");</script>
Run Code Online (Sandbox Code Playgroud)

但如果我使用$(".textDiv .sp").text(txt); 而不是messageBox.text(txt); 输出只是嗨当我使用$(".textDiv .sp")时会出现什么问题.text(txt);?

编辑:我不想注入html.我想只显示文本.但我只是想知道为什么messageBox.text(txt); 但是$(".textDiv .sp").text(txt); 犯规

wak*_*oka 6

text()正在转义html标签,如果你需要将html注入你的文档,然后使用html() http://api.jquery.com/html/

编辑:我认为$(".textDiv .sp").text(txt);没有用,因为该阶段没有将元素注入到DOM中,而您正试图从DOM中选择它

尝试console.log( $(".textDiv .sp") ),看看它返回了什么.