将<li>添加到jquery变量中的每个元素(在添加到UL之前)

时间:2015-07-23 07:14:48

标签: javascript jquery html

我想做什么

  1. 从外部html(在同一个域中)中选择一些html元素到jquery中的变量(工作)
  2. 对于每个元素项,将它们包装为(不工作)
  3. 将该变量添加到我的页面中的ul (工作)
  4. 我有以下代码,在这一点上,工作,但它只是将元素(el)转储到一个大型列表项中的页面上,而不是每行自己

    $(document).ready(function() {
    var $div = $('<li>');
    
    $div.load('pages.html .el', function(){
        $("#my-menu ul.toc").prepend($div);
    });
    });
    

    我尝试了一些奇怪的选择等等,但似乎无法解决这个问题。

    非常感谢任何帮助。感谢

3 个答案:

答案 0 :(得分:1)

一旦从外部html加载了元素,就需要遍历这些元素。这样的事情(未经测试的代码)可能会起作用:

$(document).ready(function() {
    var $div = $('<div></div>');
    var $ul = $('#my-menu ul.toc');

    $div.load('pages.html .el', function(){
        $div.children().each(function() {
            $ul.prepend($('<li>' + $(this) + '</li>'));
        });
    });
});

如果prepend的{​​{1}}在一行中不起作用,那么如果将其分开则可能会有效:

ul

答案 1 :(得分:0)

如果没有看到代码,我什么也说不出来,但是你可以试试这个,

$(document).ready(function() {
var $div = $('<li>');

$div.load('pages.html .el', function(){
    $("#my-menu ul.toc").insertBefore($div);
});
});

答案 2 :(得分:0)

尝试在隐藏的div中加载html ..

$("<div id='pagesHtml' style='display: none;'></div>").appendTo("body");
$("#pagesHtml").load(pages.html);

..将锚点存储在变量中..

var $anchors = $("#pagesHtml").find(".el");

..然后为每个锚点制作一个LI ..

$.each($anchors, function(i, anchor){
    $("<li>" + anchor + "</li>").prependTo("#my-menu ul.toc");
});

..然后将其添加到您的容器中。

如果订单有误,那么你应该使用“.appendTo”。

快乐编码=)