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中删除它,而不是html
variables,请使用您的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