gpt4 book ai didi

jquery - 打破 Jquery 每个循环的问题?

转载 作者:行者123 更新时间:2023-12-01 03:52:16 25 4
gpt4 key购买 nike

我有一些像这样的 html 元素:

 <table id="myTable"></table>

<select name="mySelect">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

<a href="javascript:void(0)" onclick="addToTable()">Add new</a>

<script>
addToTable = function() {
var selected = $("select[name*='mySelect'] option:selected").val();
$('#myTable').find('tr').each(function() {
if ($(this).attr('id')==selected) {
alert('Record has already existed!'); return false;
}
else $('#myTable').append('<tr id="'+selected+'"><td>'+selected+'</td></tr>');
});
}
</script>

问题是:当我添加具有相同 id 的两条记录(行)时,它会发出警报消息,但会继续附加新行而不是打破循环。我这里错了什么?

提前致谢。

最佳答案

你在做什么:

for every existing row R
if R.id == newRow.id
alert
break
else
add newRow

这将为具有该 id 的现有行之前的每一行添加 newRow。对于行 [1,2,3,4,5,6,7,8,9] 并添加第 9 行,将在警告“已存在”之前添加该行 8 次。

你的意思是:

exists = false
for every existing row R
if R.id == newRow.id
existing = true
alert
break

if !exists
add newRow

相当于 JS:

addToTable = function() {
var selected = $("select[name*='mySelect'] option:selected").val();
var exists = false;
$('#myTable').find('tr').each(function() {
if ($(this).attr('id')==selected) {
alert('Record has already existed!');
exists = true;
return false;
}
});
if(!exists) {
$('#favourite_hotels_table').append('<tr id="'+selected+'"><td>'+selected+'</td></tr>');
}
}

关于jquery - 打破 Jquery 每个循环的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201734/

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