Javascript 选择框选项不显示选定项
我正在尝试将一个选择框项目复制或移动到另一个选择框。问题是,当一个或多个项目从第一个框移动到第二个框时,应将其选中。但它不起作用 我的代码Javascript 选择框选项不显示选定项,javascript,jquery,Javascript,Jquery,我正在尝试将一个选择框项目复制或移动到另一个选择框。问题是,当一个或多个项目从第一个框移动到第二个框时,应将其选中。但它不起作用 我的代码 function SelectMoveRows(SS1,SS2) { var SelID=''; var SelText=''; var SelText2=''; // Move rows from SS1 to SS2 from bottom to top for (i=SS1.options.length -
function SelectMoveRows(SS1,SS2)
{
var SelID='';
var SelText='';
var SelText2='';
// Move rows from SS1 to SS2 from bottom to top
for (i=SS1.options.length - 1; i>=0; i--)
{
if (SS1.options[i].selected == true)
{
SelID=SS1.options[i].value;
SelText=SS1.options[i].text;
SelText2=SS1.options[i].attr("selected");
var newRow = new Option(SelText,SelID,SelText2);
SS2.options[SS2.length]=newRow;
SS1.options[i]=null;
}
}
SelectSort(SS2);
}
然后我用
SelText2=SS1.options[i].attr("selected");
但它不起作用。如果我使用:
SelText2=SS1.options[i].select=true;
然后选项看起来像:
<option value="3" selected="">Delivery</option>
但它应该是:
<option value="3" selected="selected">Delivery</option>
在选项标记中,所选属性不需要值:
<option value="3" selected>Delivery</option>
与
<option value="3" selected="selected">Delivery</option>
请在此处查看:
您应该使用.prop而不是.attr e、 g 供参考: 更新:我将按照以下方式进行操作:
<select id="select1">
<option value="1">Option1</option>
<option value="2">Option2</option>
</select>
<select id="select2">
<option value="3">Option3</option>
</select>
$("#select1").change(function(){
$("#select1 option:selected").each(function() {
var option = $(this);
$("#select2").append(option);
$("#select1").remove(option);
});
});
这将在选择时将所选选项从Select 1切换到Select 2。正如David Thomas在评论中指出的那样,.attr不是Select元素的有效方法;它是jQuery对象上的一个方法,而您没有 您可以将true作为参数传递给选项构造函数,第三个参数实际上是defaultSelected属性,而第四个参数是selected属性
for (var i = SS1.options.length - 1; i >= 0; i--) {
var option = SS1.options[i];
if (option.selected) {
SS2.add(new Option(option.text, option.value, false, true));
SS1.remove(i);
}
}
您可以使用option.selected而不是true,但由于if语句,您知道option.selected将始终为true
把你的代码弄得乱七八糟。。。。SelText2=SS1.options[i].attrselected;为什么会这样?您试图使用jQuery方法attr'selected',这是一个getter,它检索属性的值,并将其链接到一个DOM节点,该节点无论如何都无法访问jQuery方法。您是否查看了浏览器的JavaScript控制台,如果没有,请按“F12”?与此JavaScript一起使用的相关HTML是什么?如果您看起来没有使用jQuery,那么最好删除该标记,除非您在其他地方使用它,并且欢迎使用jQuery解决方案。为什么?任何引用?SS1.options[i]都不是jquery对象
for (var i = SS1.options.length - 1; i >= 0; i--) {
var option = SS1.options[i];
if (option.selected) {
SS2.add(new Option(option.text, option.value, false, true));
SS1.remove(i);
}
}