Javascript 简化并重写我的重复代码

Javascript 简化并重写我的重复代码,javascript,jquery,css,Javascript,Jquery,Css,好的,我有一个表,其中有单独的行或父行,有几个子行链接到父行。我有一些图标可以删除那个父亲,或者单个的儿子。图标将显示一个模式弹出窗口(而不是警报)以确认删除。这很有效,但我得重复很多次。我认为这可以简化为查找ID或类,因为模式显示/隐藏是这样工作的。提前谢谢 <script> function delVesselAll(){ $("#vessel_tab #father1").remove(); $("#vessel_tab .son1").remove();

好的,我有一个表,其中有单独的行或父行,有几个子行链接到父行。我有一些图标可以删除那个父亲,或者单个的儿子。图标将显示一个模式弹出窗口(而不是警报)以确认删除。这很有效,但我得重复很多次。我认为这可以简化为查找ID或类,因为模式显示/隐藏是这样工作的。提前谢谢

<script>
function delVesselAll(){
    $("#vessel_tab #father1").remove();
    $("#vessel_tab .son1").remove();
    document.getElementById(id).style.display = 'block';
};
function delVesselAll2(){
    $("#vessel_tab #father2").remove();
    $("#vessel_tab .son2").remove();
    document.getElementById(id).style.display = 'block';
};
</script>

函数delvessellall(){
$(“#容器#选项卡#父1”)。删除();
$(“#Vesser#u tab.son1”).remove();
document.getElementById(id).style.display='block';
};
函数delvessellall2(){
$(“#容器#选项卡#父2”)。删除();
$(“#Vesser_tab.son2”).remove();
document.getElementById(id).style.display='block';
};
和我的html:

<td class="cell_50">
  <a style="text-decoration:none;" onclick="showModal('delAll1')"><img src="images/delete-row-icon1.png" title="Delete this row" height="12" width="12" class="father1Del" id="father1Del"/></a>
</td>
<div class="delModal" style="z-index:999999; margin-left:200px; margin-top:30px; display:none" id="delAll1">
  <img src="images/warning.png" />&nbsp;Are you sure you want to delete vessel and the corresponding tanks?<br />
  <input type="button" value="Cancel" class="hide" onclick="hideModal('delAll1')"/>
  <input type="button" value="Delete" onclick="delVesselAll()"/>
</div>

是否确实要删除容器和相应的储罐?
所以我基本上有很多行做同样的事情,它们可以有类或ID“father1”“father2”“son1”“son2”。我还希望这些div可以淡入淡出,使用类似于
$(this.fadeIn('slow')

提前感谢。

您可以传入变量(可能通过循环,但这取决于数字的生成方式):

<script>
function delVesselAll(){
    $("#vessel_tab #father1").remove();
    $("#vessel_tab .son1").remove();
    document.getElementById(id).style.display = 'block';
};
function delVesselAll2(){
    $("#vessel_tab #father2").remove();
    $("#vessel_tab .son2").remove();
    document.getElementById(id).style.display = 'block';
};
</script>
那么就这样称呼它:

delVesselAll(1);
delVesselAll(2);
如果您的数字是可预测且连续的,则可以在循环中对其进行迭代:

for (var i = 1; i < $("[id^='father']").length; i++) {
    delVesselAll(i);
}
for(var i=1;i<$(“[id^='father']”)。长度;i++){
德尔维塞尔(一);
}

如果不清楚,您可能需要检查此项。

您可以传入变量(可能通过循环,但这取决于数字的生成方式):

那么就这样称呼它:

delVesselAll(1);
delVesselAll(2);
如果您的数字是可预测且连续的,则可以在循环中对其进行迭代:

for (var i = 1; i < $("[id^='father']").length; i++) {
    delVesselAll(i);
}
for(var i=1;i<$(“[id^='father']”)。长度;i++){
德尔维塞尔(一);
}

如果不清楚,您可能需要查看此内容。

您应该显示完整的布局。船舶标签和公司在哪里?你应该展示你的完整布局。
#Vesser_tab
and co.在哪里?@triplethreat77这是一个函数,所以你需要用你的数字来调用它。它工作得很好,反应很快。非常感谢。我可以让这些块淡入淡出吗?是的,这会使它们具有特定的ID或类。我可以让它与document.getElementById场景一起工作吗,如上所述?此代码看起来正确,但如果我尝试删除第四个子项,它将只删除表中的第一个子项。不管你有没有身份证。想法?@triplethreat77这是一个函数,所以你需要用你的数字来调用它。这很好,反应很快。非常感谢。我可以让这些块淡入淡出吗?是的,这会使它们具有特定的ID或类。我可以让它与document.getElementById场景一起工作吗,如上所述?此代码看起来正确,但如果我尝试删除第四个子项,它将只删除表中的第一个子项。不管你有没有身份证。思想?