我的属性没有正确追加

时间:2013-10-01 04:33:01

标签: javascript jquery

当前代码似乎附加了所有内容,只要任何小于或等于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");
    } 
});

3 个答案:

答案 0 :(得分:2)

首先,您的标记无效,您应该使用liol元素包装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/

答案 1 :(得分:0)

没有if没问题...问题是x未定义。

写一下

item.appendTo("#div2");

答案 2 :(得分: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");
    } 
    });