【发布时间】:2011-11-04 07:54:11
【问题描述】:
我有一些像这样的 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 的记录(行)时,它会提醒消息,但会继续追加新行而不是中断循环。我在这里做错了什么?
提前致谢。
【问题讨论】:
-
添加相同 ID 的元素是错误的
-
他说了什么^。您不能在一个页面上多次使用相同的 ID="...." 标记。如果你想做这样的事情,你应该把它放在一个自定义属性中,或者放在类中。
-
我知道。这就是为什么我需要检查元素 ID。如果 ID 已经存在,则什么也不做。
-
只检查是否 ($("#" + selected) != undefined) {// 元素已经存在,什么都不做} 那不是更简单吗?
标签: jquery loops break out each