请告诉我如何检查dom中的元素ID预设?我可以检查一下。但是我需要使用"继续"功能。如果id已经存在,它会增加id,直到获得dom中不存在的id?
在我的例子中: " tc_1"现在当用户按下"测试"但它会检查" tc_2"如果没有,它会在tc_3和tc_4中添加.same。我们可以这样做吗? 如果它是id退出
$(function(){
$('#test').click(function(){
var id;
if (typeof ($("#app li:last").attr('id')) == 'undefined') {
id = "tc_1";
} else {
id = $("#app li:last").attr('id');
if(!$("#" + id).length == 0) {
//not exist
}
var index = id.indexOf("_");
var count = id.substring(index + 1, id.length);
count = parseInt(count);
id = id.substring(0, index) + "_" + parseInt(count + 1);
}
var html = '<li id="'+id+'">'+id+'</li>';
$('#app').append(html);
});
});
当用户按下按钮时,添加去检查dom上是否存在id。如果它存在则会增加id的值。如果增加值也会出现然后再增加id.it增加直到它找不到新的id。 这有点像递归检查dom中是否存在id
答案 0 :(得分:1)
修改您的javascript
$(function(){
$('#test').click(function(){
var id=0;
for(;id<10;id++){
if(!document.getElementById("tc_"+id)){
var html = '<li id="tc_'+id+'">'+"tc_"+id+'</li>';
$('#app').append(html);break;
}
}
});
});
答案 1 :(得分:0)
试试这个L http://jsfiddle.net/lotusgodkk/2dLrw/6/
$(function () {
$('#test').click(function () {
var m = 0;
var ul = $('#app');
$('#app li').each(function () {
var id = parseInt($(this).attr('id').split('_')[1]);
if (id > m) m = id;
});
m++;
var li = $('<li></li>');
ul.append(li);
li.attr('id','tc_'+m).text('tc_'+m);
});
});
HTML:
<ul id="app">
<li id="tc_1">tc_1</li>
<li id="tc_4">tc_4</li>
<li id="tc_9">tc_9</li>
</ul>
<button id="test">test</button>
注意:确保所有li都有Id。或者只是在JS中添加一个支票。