javascript - 删除具有相同类属性的所有元素但保留一个

标签 javascript jquery html dom

我可以使用 jquery 删除功能删除所有带有名为 trSkillCls 的类的文本框。我想要实现的是,如果有 5 个具有相同类名的文本框,我不想将它们全部删除,但应该只删除 4 个,即总是少一个元素。我实际上必须编写一个函数来删除所有文本字段,只留下一个文本字段留在单击保存按钮上。 这是我的代码:

$("#addAnotherSkillBtn").click(function(){
  addAnotherSkill();
 });    

function addAnotherSkill(){

  var trSkillHTML = $("<div />").append($("#trSkill").clone()).html();                      
  $("#tBSkill").append(trSkillHTML);                        
}

function removeSkill(self){
  var delBtnCtr = $('#tBSkill').find('.deleteSkillCls').length;                     
  if(delBtnCtr > 1)
$(self).closest('tr').remove();
}

和 HTML:

<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
    <td ><strong>Employee</strong></td>
    <td width="2%">:</td>
    <td width="82%"><input name="empName" id="empName" type="text" style="width:100%;height:30" maxlength="30"  ></td>
</tr>                                       

<tr>

    <table  class="skillTable" border="0" cellpadding="0" cellspacing="0" width="480">
        <tbody id="tBSkill">
            <tr id="trTitle">
                <td width="206"><strong>Skill</strong></td>

                <td width="270"><strong>Level</strong></td>
                <td></td>
            </tr>

            <tr id="trSkill" class="trSkillCls">
                <td><input  name="skill" id="skillP0" style="height:30;width:190;" maxlength="60" autocomplete="off" tooltip="Please enter only one IT skill per box." type="text"></td>
                <td >
                    <select name="ddlSkillLevel" class="w180">
                        <option value="-1">Level</option>  
                        <option value="00" selected="selected">Beginner</option>  
                        <option value="01">Intermediate</option>  
                        <option value="02" >Expert</option> 
                        <!-- <option value="03">3</option>  <option value="04">4</option>  <option value="05">5</option>  <option value="06">6</option>  <option value="07">7</option>  <option value="08">8</option>  <option value="09">9</option>  <option value="10">10</option>  <option value="11">11</option>            -->
                    </select> 

                </td>

                <td>
                    <input type="button" class="deleteSkillCls" name='parentDel' onclick="removeSkill(this)" value="Delete">
                </td>

            </tr>
        </tbody>
    </table>
</tr>
<tr>
    <td></td>
</tr>
<tr>
    <td>
        <input type="hidden" id="str" name="str" value="" /> 
        <input type="button" name="addAnotherSkill" id='addAnotherSkillBtn' value="Add Another Skill">
        <input type="submit" name="submit" id="btnSave" value="Save"> 
        <input type="reset" name="reset" value="Reset"></td>
    </tr>
</table>

最佳答案

您可以使用下面的 jQuery 删除除第一个以外的所有内容(假设没有保留哪个的特定标准):

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

Demo

关于javascript - 删除具有相同类属性的所有元素但保留一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24284667/

相关文章:

javascript - Requirejs baseUrl 仅在 bower 模块前面加上

javascript - 如何从图片中提取图标并显示在页面中? (通过 javascript 或 jquery 或 css)

jquery - .click 函数后获取值 jQuery 具有动态内容的 jQuery

html - json 字符串可以包含 HTML 标签吗?

javascript - 我无法在我的 html 页面中显示 ajax 请求响应

javascript - 将表格转换为 Canvas ,然后使用 jQuery 将 Canvas 下载为图像

javascript - 在 Android 上播放 mp3 有什么技巧吗?

Javascript/Jquery 脚本因超时而终止

html - 更改光标(指针)图像

java - 抓取数据。保存存档?