首页 > 解决方案 > 有没有办法将这样的东西组合成一个函数而不是定义这么多?

问题描述

我试着做一个循环,但这并不完全有效

我也想过尝试正则表达式,但这也不起作用

这段代码是更大的一部分,它使用 jquery 在用户按下添加新时动态添加字段,并在用户按下删除时删除那些字段,因此使用的类和 ID 具有它们遵循的模式。IE。如果我可以做 $(like .'/deleteimg[0-9]{1,}/') 而不是确切的事情,这将得到解决。

我现在想到的解决方案是编写一个编写此代码的代码,但是虽然这让我不必编写代码,但它并不能完全帮助代码,所以我不想这样做,除非它是唯一的选择

如果我是第一个遇到这个问题的人,我会感到惊讶,但谷歌搜索并没有真正揭示任何相关答案

jQuery(function($){
$('.deleteimg1').click(function() {
    $('.1').remove();
});
});
jQuery(function($){
$('.deleteimg2').click(function() {
    $('.2').remove();
});
});
jQuery(function($){
$('.deleteimg3').click(function() {
    $('.3').remove();
});
});
jQuery(function($){
$('.deleteimg4').click(function() {
    $('.4').remove();
});
});
jQuery(function($){
$('.deleteimg5').click(function() {
    $('.5').remove();
});
});
jQuery(function($){
$('.deleteimg6').click(function() {
    $('.6').remove();
});
});
jQuery(function($){
$('.deleteimg7').click(function() {
    $('.7').remove();
});
});
jQuery(function($){
$('.deleteimg8').click(function() {
    $('.8').remove();
});
});
jQuery(function($){
$('.deleteimg9').click(function() {
    $('.9').remove();
});
});
jQuery(function($){
$('.deleteimg10').click(function() {
    $('.10').remove();
});
});

标签: javascriptjquery

解决方案


你可以for-loop像这样使用:

jQuery(function($) {
  for (let i = 1; i <= 10; i++) {
    $('.deleteimg'+ i).click(function() {
      $('.'+ i).remove();
    });
  }
});

推荐阅读