-1
想要通過它的選項文本對html進行排序。爲什麼這種排序功能不起作用?
$(function() {
var options = $('#buybox select[name="group[2]"] option');
var arr = options.map(function(_, o) {
return {
t: $(o).text(),
v: o.value
};
}).get();
arr.sort(function(a, b) {
//return a.t > b.t ? 1 : a.t < b.t ? -1 : 0;// numeric
var sizes = { "XS" : 0 , "S" : 1, "M" : 2, "L" : 3, "XL" : 4, "2XL" : 5};
console.log(sizes);
console.log(a.t);
console.log(b.t);
console.log(sizes[a.t]);
console.log(sizes[b.t]);
return sizes[a.t] > sizes[b.t] ? 1 : sizes[a.t] < sizes[b.t] ? -1 : 0;
});
options.each(function(i, o) {
o.value = arr[i].v;
$(o).text(arr[i].t);
});
});
數字排序工作得很好。但屬性名稱a.t和b.t未定義。 這裏有什麼問題?
感謝
HTML選擇
select name="group[2]" onchange="this.form.submit();" style="width: 300px;">
<option selected="selected" value="7">L</option>
<option value="8">XL</option>
<option value="9">2XL</option>
<option value="35">M</option>
</select>
嘗試'VAR選項= $('#buybox選擇[ name =「group \\ [2 \\]」] option');' – lshettyl 2015-03-18 21:47:23
@LShet ty:謝謝,但選擇器正常工作。 – user1350963 2015-03-18 21:49:29