ul类似如下
<ul id="myUL">
<li class="abc">1</li>
<li class="abc">1</li>
<li class="abc">1</li>
<li class="abc">1</li>
<li class="abc">1</li>
<li class="abc">1</li>
</ul>var mainTag = $("#myUL")//ul id
var content = $(mainTag).find("li").slice(0,3);//捷取前三个
console.log(content);//[li,li,li]//正确现有需要对mainTag清空,把内容转存,改为这样var backupTag = mainTag.html();//console值为[li,li,li,li......]
$(backupTag).find("li").slice(0,3);//[]
没错误,输出[ ]空如何处理呢,find好像只查找子元素,但这是字符串虽然转为了对象但里面没要求的子元素jquery若不能用了,用js该如何捷取前三个li好呢

解决方案 »

  1.   

    find是找dom节点,又不是找string原生js用getElementsByTagName来做
    lis = document.getElementById('myUL').getElementsByTagName;
    li1 = lis[0];
    li2 = lis[1];
    li3 = lis[2];
    前三个。
      

  2.   

    lis = document.getElementById('myUL').getElementsByTagName;
    li1 = lis[0];
    li2 = lis[1];
    li3 = lis[2];
      

  3.   

    lis = document.getElementById('myUL').getElementsByTagName('li');
      

  4.   

    哈哈,首先谢谢你
    myUL将被清空,填入筛选好的内空,就是一个分页效果
    我想省一个tag,打算把值直接给一个变量,就是字符串,myUL id没多大意义
    因为我把他值转走了就把他清空了
    从html看<ul id="myUL"></ul>就这了
    而字符串
    var backupTag = '
    <li class="abc">1</li>
    <li class="abc">1</li>
    <li class="abc">1</li>
    <li class="abc">1</li>
    <li class="abc">1</li>
    <li class="abc">1</li>
    ';
    以后跟据不同页数,从这个backupTag内取出对应的数据appendTo $("#myUL)
      

  5.   

    这个取前三个,若是变化了,再想取3-6个的时候,都被remove了
    我想做个的通用ul li分页效果,把总数据一下存入一个变量,不知是否是个合理操作
    不符合lazy load风格,但现在数据量小,先这样慢慢再优化,有啥高见没
      

  6.   

    var backupTag = '\
    <li class="abc">1</li>\
    <li class="abc">2</li>\
    <li class="abc">3</li>\
    <li class="abc">4</li>\
    <li class="abc">5</li>\
    <li class="abc">6</li>\
    ';
    backupTag = $(backupTag);
    $(document).ready( function() {
    $("#myUL").html('').append(backupTag.slice(0, 3));

    //测试:3秒后切换到"第二页"
    window.setTimeout('$("#myUL").html("").append(backupTag.slice(3, 6));', 3000);
    });
      

  7.   

    哦~~~~~~~~~~~~~~这样也可以啊,it's working
    谢谢各位
      

  8.   

    如果数据量比较大的话,还是用AJAX异步请求数据比较好。
      

  9.   


    jquery有个克隆方法clone();var backupTag = mainTag.clone();// 克隆一个
    var content2 = backupTag.find("li").slice(0,3);//捷取前三个
    alert(content2.length);
      

  10.   

    你回答的太好了,这clone我知道,没用过就没想到,我试了一下,正是想要copy一个对象,这个太简洁了
    楼上说的强转换的,思路也很好,就是长字符串时,回车或特殊字符可能引起问题,我的slice(0,7)和(0,8)两个输出一模一样的slice(0,9)却又正常了,输出一看多出个<TextNode textContent=" ">很费解,大数据ajax分步主意也很正,赞,对于这问题还是clone对劲,再提问时见你必给分:thc1987 谢谢