Javascript 当某个li是ul中的最后一个li时执行操作

Javascript 当某个li是ul中的最后一个li时执行操作,javascript,javascript-events,jquery,Javascript,Javascript Events,Jquery,这个也有 行数:0 因此,当单击addmore链接时,fiddle中显示的javascript会附加一个li和一个文本框,当单击remove链接时也会将其删除 当我点击删除链接时,我想检查这是否是ul中的最后一个li,如果是最后一个/唯一的li,我还想删除id为some_name的输入。 你会怎么做?谢谢。$('.add_options')。在('click',函数(){ $('.add_options').on('click', function () { if ( $('#va

这个也有

行数:0
因此,当单击addmore链接时,fiddle中显示的javascript会附加一个li和一个文本框,当单击remove链接时也会将其删除
当我点击删除链接时,我想检查这是否是ul中的最后一个li,如果是最后一个/唯一的li,我还想删除id为some_name的输入。
你会怎么做?谢谢。

$('.add_options')。在('click',函数(){
$('.add_options').on('click', function () {
    if ( $('#variants > li').length < 2 && (! $('#some_name').closest('li').is(':visible') )) {
        $('#some_name').closest('li').show();
    }else{
        var li  = $('<li />',    {'class':'some_id'}),
            inp = $('<input />', {type:'text', id:'prop_name', 'class':'prop_name', placeholder:'Property name'}),
            anc = $('<a />',     {href:'#', 'class':'remover', text: 'Remove'});

        $('#variants').append(li.append(inp, anc));

        anc.on('click', function() {
            if ($('#variants > li').length < 3) $('#some_name').closest('li').hide();
            $(this).closest('.some_id').remove();
        });
    }
});
如果($('#variants>li')。长度<2&(!$('#some_name')。最近('li')。是(':visible')){ $('some_name')。最近('li')。show(); }否则{ var li=$('
  • ',{'class':'some_id'}), inp=$('',{type:'text',id:'prop_name','class':'prop_name',占位符:'Property name'}), anc=$('

    $('.add_options')。在('click',function(){
    如果($('#variants>li')。长度<2&(!$('#some_name')。最近('li')。是(':visible')){
    $('some_name')。最近('li')。show();
    }否则{
    var li=$('
  • ',{'class':'some_id'}), inp=$('',{type:'text',id:'prop_name','class':'prop_name',占位符:'Property name'}),

    anc=$('

    ul
    元素只能将
    li
    元素作为子元素。
    输入在那里无效。并且id在上下文页面上必须是唯一的您还可以生成重复id的“prop\u name”这是无效的,你可以通过当前li的类索引来检查。很抱歉,忽略这一点,我很快在小提琴上写下了它。即使它在外面,它仍然工作相同。如果开始删除的li是最后一个,隐藏一些名称如果列表元素少于三个,或者换句话说,只剩下两个,它是最后添加的一个,并且打开e从一开始就存在,因此删除最后一个,并隐藏原始元素。
    ul
    元素只能将
    li
    元素作为子元素。
    输入在那里无效。并且id在上下文页面上必须是唯一的,同时生成重复id的“prop\u name”这是无效的,你可以通过当前li的类索引来检查。很抱歉,忽略这一点,我很快在小提琴上写下了它。即使它在外面,它仍然工作相同。如果开始删除的li是最后一个,隐藏一些名称如果列表元素少于三个,或者换句话说,只剩下两个,它是最后添加的一个,并且打开e那从一开始就存在,所以删除最后一个,并隐藏原来的一个。像老板一样,谢谢!我会尝试一下。很好的编码风格,顺便说一下,我将从中学习很多。这不是也删除类别名称输入吗?-@SkyAlchest你不是说你不能删除对象吗?我不明白really@LightStyle-不,它只是隐藏它!这里有一个只隐藏元素,根本不删除,计数器工作->是的,隐藏,但我错了吗,或者它至少应该保持类别输入可见吗?问题是删除id
    some_name
    的输入,这就是类别输入,所以我假设在上次添加列表时也要隐藏它元素被删除了?像个老板一样,谢谢!我会试试这个。不错的编码风格,顺便说一句,我会从中学到很多。这不是也删除了类别名称输入吗?-@SkyAlchest你不是说你不能删除对象吗?我不明白really@LightStyle-不,它只是隐藏它!这里有一个只隐藏元素,不移除任何元素l、 使用计数器->是,隐藏,但我错了吗?或者至少应该让类别输入保持可见吗?问题是要删除id为
    some_name
    的输入,这就是类别输入,所以我假设在删除最后添加的列表元素时也要隐藏它?
    $('.add_options').on('click', function () {
        if ( $('#variants > li').length < 2 && (! $('#some_name').closest('li').is(':visible') )) {
            $('#some_name').closest('li').show();
        }else{
            var li  = $('<li />',    {'class':'some_id'}),
                inp = $('<input />', {type:'text', id:'prop_name', 'class':'prop_name', placeholder:'Property name'}),
                anc = $('<a />',     {href:'#', 'class':'remover', text: 'Remove'});
    
            $('#variants').append(li.append(inp, anc));
    
            anc.on('click', function() {
                if ($('#variants > li').length < 3) $('#some_name').closest('li').hide();
                $(this).closest('.some_id').remove();
            });
        }
    });