javascript - 如何在 jQuery 中为动态下拉按钮设置默认选项?
问题描述
我有一个 HTML 和 jQuery 代码。当我单击添加更多按钮时,我需要向页面添加一个下拉按钮,并且应该使用包含它的位置值的选项来选择它。
例如:如果只有一个下拉菜单,则选择选项为 1。单击添加更多按钮后,应选择新创建的下拉菜单选项 2。下一个下拉菜单应选择选项 3 等。
但是在我的代码中,当我创建更多按钮时,只有最后一个按钮会有它的位置值,所有其他下拉菜单都将重置为 "1"。我该如何解决这个问题?
$(".add_more").on("click", function() {
var order = $(".item_order:last").find("option:last").text();
var nextItem = parseInt(order) + 1;
$(".main").last().after($(".main").clone().html());
$(".item_order").append("<option>" + nextItem + "</option>");
$(".item_order:last option:contains(" + nextItem + ")").prop("selected",true);
});
.main {
float : left;
}
.item_order {
width : 45px;
margin-right : 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
<select class="item_order">
<option>1</option>
</select>
</div>
<button class="add_more">+Add More</button>
解决方案
问题出在克隆上,试试这个,你得到的是 html 内容而不是 select 语句,你也在 main 后面而不是 main 里面附加了 newselect 选项,所以每次你选择它时都会选择所有元素。
$(".main").append($(".main .item_order:last").clone());
$(".add_more").on("click", function() {
var order = $(".item_order:last").find("option:last").text();
var nextItem = parseInt(order) + 1;
$(".main").append($(".main .item_order:last").clone());
$(".item_order").append("<option>" + nextItem + "</option>");
$(".item_order:last option:contains(" + nextItem + ")").prop("selected",true);
});
.main {
float : left;
}
.item_order {
width : 45px;
margin-right : 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
<select class="item_order">
<option>1</option>
</select>
</div>
<button class="add_more">+Add More</button>
推荐阅读
- angular - angular:6 typescript:2 primeng:7 导致“环境上下文中不允许使用 cli 初始化程序”
- css - 顺风:文本溢出:省略号?
- postgresql - TimescalDB 比纯 PostgreSQL 慢
- azure - Azure 人脸 API 定价?
- apache-drill - 使用REGEXP_REPLACE sql方法在apache钻中替换多个字符串
- angular - Angular:等待一个可观察对象的返回以启动另一个
- c++ - 二进制“==”:未找到运算符 - TCP 套接字 SFML
- c# - 使用另一个类 c# 更改标签文本
- shopify - Shopify product.price.liquid 数学过滤器显示不正确
- r - 如何从数百个 .csv 文件中的特定单元格中提取值?