gpt4 book ai didi

javascript - 删除选择标签中第一个选定元素的选定属性?

转载 作者:行者123 更新时间:2023-11-30 18:52:30 26 4
gpt4 key购买 nike

我有一个多选标签,请看脚本

<select multiple="multiple" size="5" id="cities_select">
<option value="1">city1</option>
<option value="2">city2</option>
<option value="3">city3</option>
<option value="4">city4</option>
<option value="5">city5</option>
<option value="6">city6</option>
................................
</select>

和 jquery 脚本:

$("#supply_cities_select").change(function()
{
var i = 1;
$('#supply_cities_select :selected').each(function(u)
{
src += '&c'+i+'='+$(this).val();//generates the string like &c1=1&c2=2&c3=7...
i++;
});
})

我需要我的字符串不包含大于 5 的元素

例子:

如果我已经有 5 个选定元素,我的字符串看起来像

&c1=2&c2=3&c3=5&c4=6&c5=7

现在如果还要选择一个选项,我需要获取字符串

 &c1=3&c2=5&c3=6&c4=7&c5=8

如果很短,我需要删除第一个选定元素的选定属性。

(但是我不能在这里使用.first,因为它可以是第一个被选中的元素N8)

我该怎么做?

非常感谢。

更新

var a = $("#supply_cities_select :selected").length;
if(a > 5)
{
$("#supply_cities_select :selected:lt(1)").attr("selected",false);
}

它只是删除了第一个选择的选项,不是吗?


最佳答案

你可以用更简单的方式来做这件事 .map():lt()像这样:

var src;
$("#supply_cities_select").change(function() {
src = $("#supply_cities_select :selected:lt(5)").map(function(i) {
return '&c'+(i+1)+'='+this.value; //i starts at 0, so add 1
}).get().join('');
})​;

You can try a demo here . :lt()选择器获取前 5 个(小于 5,从 0 开始,所以 (0-4),然后我们使用 .map() 将值放入数组,然后调用 .join() 获取该数组的字符串加在一起。


对于更新:要获取最后 5 个元素,最好使用 .slice() ,像这样:

var src;
$("#supply_cities_select").change(function() {
src = $("#supply_cities_select :selected").slice(-5).map(function(i) {
return '&c'+(i+1)+'='+this.value; //i starts at 0, so add 1
}).get().join('');
})​;

You can give it a try here .

关于javascript - 删除选择标签中第一个选定元素的选定属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3335117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com