jquery删除除了第一个的所有元素

使用jquery删除如何删除除第一个以外的所有span标签..

EDIT

  var html = var htm = $("#addin").find(".engagement_data:last-child").find(".keys_values").html(); html=' <span style="display:block;" class="k_v"> <innput type="text" class="e_keys" style="width:65px;" placeholder="key"/> <input type="text" class="e_values" style="width:65px;" placeholder="value"/> </span> <span style="display:block;" class="k_v"> <input type="text" class="e_keys" style="width:65px;" placeholder="key"/> <input type="text" class="e_values" style="width:65px;" placeholder="value"/> </span> '; 

试试:

 $(html).not(':first').remove(); 

或者更具体一些:

 $(html).not('span:first').remove(); 

要从DOM中删除它,而不是htmlvariables,请使用您的select器:

 $('#addin .engagement_data:last-child .keys_values').not('span:first').remove(); 

或者,作为替代:

 $('span').slice(1).remove(); 

片()
给定一个表示一组DOM元素的jQuery对象,.slice()方法构造一个新的jQuery对象,其中包含start和可选的end参数指定的元素的子集。

开始
types:整数
指示元素开始被select的基于0的位置的整数。 如果为负数,则表示距离集合的末端有偏移。

来源: https : //api.jquery.com/slice

因此, $('span').slice(1).remove()将select并删除第一个实例之后的所有元素。

使用这个select器:

 $('span:not(first-child)') 

所以你的代码是这样的:

 $('span:not(first-child)').remove(); 

尝试这个

 $('html').not(':first').remove(); 

以上内容可能适用于特定示例,除非您正在查找的types的子元素除外。 但是你会遇到更复杂的标记问题:

 <ul id="ul-id" class="f-dropdown tiny" data-dropdown-content=""> <li> <div id="warningGradientOuterBarG" class="barberpole"> <div id="warningGradientFrontBarG" class="warningGradientAnimationG"> <div class="warningGradientBarLineG"></div> </div> </div> </li> <li>foo</li> <li>bar</li> </ul> 

 var $ul = $('#ul-id') $ul.not(':first') //returns nothing $ul.find(':first') // returns first <li> $ul.find(':not(:first)') //returns the inner divs as well as the last two li's $('#ul-id li:not(first-child)') // this returns all li's $('#ul-id li:not(:first)') // this works: returns last two li's $ul.find('li').slice(1) // this also works and returns the last two li's $ul.find('li').slice(1).remove() // and this will remove them