当前代码似乎附加了所有内容,只要任何小于或等于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");
}
});
答案 0 :(得分:2)
首先,您的标记无效,您应该使用li
或ol
元素包装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
});
答案 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");
}
});