在无序列表中显示html标签的内容(可疑行为)

时间:2012-11-09 06:39:38

标签: jquery post html-lists

我有一个使用jQuery.post()函数的LiveScript从服务器文件category.php获取数据。服务器文件返回<li><a href="#cellphones">cellphones</a></li><li><a href="#tablets">tablets</a></li><li><a href="#laptops">laptops</a></li>,但是当我使用jQuery LiveScript将其添加到html无序列表中时。我也正在获取包含内容的标签。

的script.js

$.post("category.php", function(data) {
    $('#categories ul').text(data);
});

的index.php

<div id="categories">
    <ul>

    </ul>
</div>

CHROME显示..

<li><a href="#cellphones">cellphones</a></li><li><a href="#tablets">tablets</a></li>   <li><a href="#laptops">laptops</a></li>

而不是

  • 手机
  • 片剂
  • 笔记本
  • 4 个答案:

    答案 0 :(得分:1)

    使用

    $.post("category.php", function(data) {
        $('#categories ul').html(data);
    });
    

    答案 1 :(得分:1)

    使用.html()

    这并不奇怪。这是预期的行为。对于您的情况,请使用.html()

    $.post("category.php", function(data) {
        $('#categories ul').html(data);
    });
    

    来自jQuery的解释

    <强> .html()

      

    在HTML文档中,.html()可用于获取任何元素的内容。如果选择器表达式与多个元素匹配,则只返回第一个匹配的HTML内容。

    <强> .text()

      

    .html()方法不同,.text()可以在XML和HTML文档中使用。 .text()方法的结果是一个字符串,其中包含所有匹配元素的组合文本。 (由于不同浏览器中HTML解析器的不同,返回的文本可能会在换行符和其他空格中有所不同。)

    答案 2 :(得分:1)

    $.post("category.php", function(data) {
    $('#categories ul').text(data);
    });
    

    将文字更改为html

    $.post("category.php", function(data) {
      $('#categories ul').html(data);
    });
    

    答案 3 :(得分:1)

    使用$('#categories ul').html(data)代替$('#categories ul').text(data)