怎样在innerHTML中不编译带<>的文本呢?
举个例子:var str = '<a href="javascript:void(0);" onclick=".." ><dsfdfdf></a>';
document.getElementById('id').innerHTML = str;这样页面显示空。因为超链文本内容是带有<的,我想直接显示出 <dsfdfdf> 这样一个连接

解决方案 »

  1.   

    '<a href="javascript:void(0);" onclick=".." >&lt;dsfdfdf&gt;</a>';
      

  2.   


    转义一下就可以了
    var str = '<a href="javascript:void(0);" onclick=".." >&lt;dsfdfdf&gt;</a>';
    document.getElementById('id').innerHTML = str;
      

  3.   

    var str = '<a href="javascript:void(0);" onclick=".." >&lt;dsfdfdf&gt;</a>';
    document.getElementById('id').innerHTML = str;
      

  4.   

    其实我的意思是超链文本是用户输入的,假如用户输入的是<abc>那按照大家的意思转译成&lt;abc&gt;然后录入数据库读取出来页面显示正确<abc>.但假如用户输入的直接就是&lt;abc&gt;那页面岂不也显示<abc>了?
      

  5.   

    从数据库读取的做法是这样的
    假如
    a = rs("内容")var str = '<a href="javascript:void(0);" onclick=".." ><%=Server.HtmlEncode(a)%></a>';
    document.getElementById('id').innerHTML = str;
      

  6.   

    <%=Server.HtmlEncode(a)%> 
    这个在用js能实现吗?
      

  7.   

    FF下 XXX.textContent='.......'
    IE下 XXX.innerText='........'还有 建立一个文本DOM在添加进指定节点中应该也可以吧
      

  8.   

    innerText 前提得有容器<a>吧,现在是<a>也是动态生成的啊
      

  9.   


    使用js就是进行replace即可,搜索javascript HtmlEncode
      

  10.   


    <script type="text/javascript"> 
    function HTMLEncode(html) 

    var temp = document.createElement ("div"); 
    (temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html); 
    var output = temp.innerHTML; 
    temp = null; 
    return output; 

    function HTMLDecode(text) 

    var temp = document.createElement("div"); 
    temp.innerHTML = text; 
    var output = temp.innerText || temp.textContent; 
    temp = null; 
    return output; 

    var html = "<br>dffdf<p>qqqqq</p>"; 
    var encodeHTML = HTMLEncode(html); 
    alert("方式一:" + encodeHTML); 
    var decodeHTML = HTMLDecode(encodeHTML); 
    alert("方式一:" + decodeHTML); 
    </script> 详细出处参考:http://www.jb51.net/article/18397.htm解决!