如何检查dom中预设的元素ID?

时间:2014-05-11 12:05:13

标签: javascript jquery

请告诉我如何检查dom中的元素ID预设?我可以检查一下。但是我需要使用"继续"功能。如果id已经存在,它会增加id,直到获得dom中不存在的id?

在我的例子中: " tc_1"现在当用户按下"测试"但它会检查" tc_2"如果没有,它会在tc_3和tc_4中添加.same。我们可以这样做吗? 如果它是id退出

http://jsfiddle.net/2dLrw/4/

   $(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

2 个答案:

答案 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中添加一个支票。