您如何根据子输入值订购div?我想最终让这个用于keyup。
<div class="wrap_0">
<input class="sort_by" value="10"/>
</div>
<div class="wrap_1">
<input class="sort_by" value="3"/>
</div>
<div class="wrap_2">
<input class="sort_by" value="7"/>
</div>
更改为:
<div class="wrap_0">
<input class="sort_by" value="3"/>
</div>
<div class="wrap_1">
<input class="sort_by" value="7"/>
</div>
<div class="wrap_2">
<input class="sort_by" value="10"/>
</div>
我当前的jquery无效:
var sortedArray = $("div[class^='wrap_']").get().sort(function(a, b) {
var idx = parseInt($(a).find(".sort_by").value,10);
var idx2 = parseInt($(b).find(".sort_by").value,10);
return idx > idx2;
});
$(sortedArray).each(function() {
$(this).appendTo("body");
});
小提琴:https://jsfiddle.net/E4U2V/3/
感谢任何帮助。
答案 0 :(得分:2)
使用.val()
代替.value
。
.val()
是在jQuery对象上使用的方法。虽然javascript对象上有.value
。
$(a).find(".sort_by")[0].value;
此外,无需使用.each()
附加数组。
var sortedArray = $("div[class^='wrap_']").get().sort(function(a, b) {
var idx = parseInt($(a).find(".sort_by").val(),10);
var idx2 = parseInt($(b).find(".sort_by").val(),10);
return idx > idx2;
});
$(sortedArray).appendTo("body");
<强> Updated fiddle 强>