jQuery将数据附加到li的级别

时间:2012-05-16 09:18:26

标签: jquery html click html-lists

我正在寻找一种方法将$.post()的数据响应附加到调用它的li的高度。

我知道它已经完成,但我找不到任何可读的内容。那么,有什么想法吗?

方案

  • 列出item1

  • 列出第2项

  • 列出item3,点击此处:

                          * sublist item1
                          * sublist item2
                          * sublist item3
    
  • 列出item4

更新

我唯一的代码是工作$.post(),我只是为了看到响应而做console.log(data)

好的,我希望通过$.post()的回复来实现这样的结果:http://www.alistapart.com/d/horizdropdowns/horizontal.htm

3 个答案:

答案 0 :(得分:1)

关于它看起来像什么的想法......

 $('yourliclass').click(function(){
       //do ajax
       $.ajax({
        .......
        .......

        success:function(data){ //data needs to be in json format
           var htmlcontent = "";
        htmlcontent = '<ul>';
        for(var i=0;i<data.length;i++){
        htmlcontent += '<li>'+data[i]['your_index']+'</li>';
    }
    htmlcontent += '</ul>';
        }
$(this).appendTo(htmlcontent);


});

}

答案 1 :(得分:1)

试试这个

        var data;
        $(document).ready(function()
        {

            $(".list li").click(function()
            {
                $.post("filename.php",function(res)
                {
                     data="<li>"+res+"</li>";           
                });
                $(this).after(data);
            });
        });     

<body>
    <ul class="list">
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
        <li>Item 4</li>
    </ul>
</body> 

答案 2 :(得分:1)

$('li.clickable').on('click', function() {
  var list = $(this);
  $.ajax({
      url: 'url_to_script',
      method: 'post',
      success: function(res) {

         var response = $(res); // assume that you response contains li tags i.e '<li>subitem 1</li>' and more
         list.append(response); // append response to list that clicked

         /* >> OR  << */
         // if you response contains data as array/field
         $.each(res, function(index, data) {
            list.append('<li>'+ data['some_text'] +'</li>'); // some_text is assumed property, you have something else
         });

        // ACCORDING TO YOUR COMMENT
        var sublist = '<ul>';
        $.each(res, function(index, data) {
            sublist += '<li>'+ data['some_text'] +'</li>'; // some_text is assumed property, you have something else
         });
            sublist += '</ul>'; // now sublist is like <ul><li>...</li>....</ul>
        list.append(sublist); // append the sublist to ul.clickable
      }
  });
});

注意:您必须制作一些CSS以改善外观