こんにちは、ボタンをクリックした後、あるリストからオプションを削除して別のリストに挿入する機能を作成したいのですが、選択したものよりも大きいサフィックスが付いたbefore
オプションが必要です。class
クラス名はopt_$i
、私が選択したときに、どちらが大きいopt_4
か前に挿入したいです(常に5であるとは限らず、73になる可能性があります)opt
function minus(id)
{
var c = $('select#'+ id +' option:selected');
var cities = $('select[name=cities] option');
c.each(function(){
var item = $(this);
var current = parseInt($(this).attr('class').replace(/[^0-9]/g, ''));
cities.each(function(){
var next = parseInt($(this).attr('class').replace(/[^0-9]/g, ''));
if(next > current)
{
var next_item = $(this);
return; // I dont know why this doesnt work ??
}
});
/**
if(previouse == 1)
{
$('select[name=cities] option:first').before(
$('<option></option>')
.attr('value', current.val())
.attr('class', current.attr('class'))
.text(current.text())
);
}
else
{
*/
//$('select[name=cities] option[class=opt_'+ previouse +']').next()
next_item.before(
$('<option></option>')
.attr('value', current.val())
.attr('class', current.attr('class'))
.text(current.text())
);
//}
$(this).remove();
});
}
これを達成するためのより良い方法はありますか?? より大きなクラス値を見つけるためにオプションを挿入するたびにリストをループするよりも??
編集:
<select id="a">
<option class="opt_3">a</option>
</select>
<select id="b">
<option class="opt_1">c</option>
<option class="opt_7">d</option>
</select>
ボタンをクリックした後、リストからオプションを削除してリストa
に挿入したいb
が、前にopt_7
. opt_3 より大きいクラスを持つオプションを見つける方法 ??
SOULUTION http://jsfiddle.net/Atm8V/6/これがどのように機能するかです。すべてのコメントに感謝します。