0

只要小于或等于 12 的任何数据项,当前代码似乎都会附加所有内容。

<div id="div1">
        <li data-item="11"></li>

        <li data-item="12"></li>

        <li data-item="13"></li>

        <li data-item="14"></li>
</div>

<div id="div2"></div>

IF 声明中是否缺少某些内容?

$("#button").on("click", function(){
    var item = $("div li").each(function(){
        return $(this).filter('[data-item]');
    });
    if (item.attr("data-item") <= 12){
        item.appendTo("#div2");
    } 
});
4

3 回答 3

2

首先,你的标记是无效的,你应该liolor元素包装ul元素。另外.fllter()方法的使用不正确,x变量是undefined,尝试以下:

<ul id="ul1">
    <li data-item="11"></li>
    <li data-item="12"></li>
    <li data-item="13"></li>
    <li data-item="14"></li>
</ul>
<ul id="ul2"></ul>

$("#button").on("click", function() {
    // Filter the li elements
    $("#ul1 li").filter(function(_, item) {
        return $(item).attr("data-item") <= 12;
    }).appendTo("#ul2"); // append the returned elements to another element
});

http://jsfiddle.net/vPXh3/

于 2013-10-01T04:39:44.950 回答
0

no the if is ok... problem is x is undefined.

just write

item.appendTo("#div2");
于 2013-10-01T04:35:06.843 回答
0
//define x



$("#button").on("click", function(){
    var item = $("div li").each(function(){
    return $(this).filter('[data-item]');
    });
    if (item.attr("data-item") <= 12){
    var  x = //item;
    x.appendTo("#div2");
    } 
    });
于 2013-10-01T04:36:31.100 回答