将参数添加到功能

这个问题在这里已经有了答案:

  • 使用JavaScript 30个答案更改元素的类

  • 您遇到错误是因为空间不是类名称中的有效字符。 而是传递单个字符串,并将它们作为一个静态参数接收。

    然后,您可以使用扩展语法将类列表传递给classList.add()

     
    // Receive all the classes--------v
    function Img(imgId, imgSrc, ...imgClass) {
      this.imgId = imgId || '';
      this.imgSrc = imgSrc || '';
      this.imgClass = imgClass;
    
      let elm = document.createElement('img');
      //elm.setAttribute('id', this.imgId);
      //elm.setAttribute('src', this.imgSrc);
    
      // This is shorter than using `.setAttribute()`
      elm.id = this.imgId;
      elm.src = this.imgSrc;
    
      elm.classList.add(...this.imgClass); // Add all the classes
    
      var xyz = document.getElementById('xyz');
    
      this.createImage = function() {
        xyz.appendChild(elm);
      }
    }
    
    var flowerImg = new Img('flower', 'http://via.placeholder.com/350x150', 'img').createImage();
    
    var airplane = new Img('airplane', 'http://via.placeholder.com/350x150', 'img', 'img-wide').createImage();
    <div action="" id="xyz">
    
    </div>

    您需要将这些类拆分为单独的字符串并分别应用每个字符串

    function Img(imgId, imgSrc, imgClass) {
          this.imgId = imgId || '';
          this.imgSrc = imgSrc || '';
          this.imgClass = imgClass;
          
          let elm = document.createElement('img');
          elm.setAttribute('id', this.imgId);
          elm.setAttribute('src', this.imgSrc);
    
          this.imgClass.split(' ').forEach(function(singleClass) {
              elm.classList.add(singleClass);
          })
    
          var xyz = document.getElementById('xyz');
    
          this.createImage = function() {
            xyz.appendChild(elm);
          }
        }
    
        var flowerImg = new Img('flower', 'http://via.placeholder.com/350x150', 'img').createImage();
    
        var airplane = new Img('airplane', 'http://via.placeholder.com/350x150', 'img img-wide').createImage();
    <div action="" id="xyz">
          
      </div>

    只需使用.className属性即可。 在那里你可以一次设置多个类。

    例如:

    elm.className = this.imgClass;
    

    或者,如果已经为该元素定义了一个类,只需将它与+运算符一起使用,但请注意,您必须插入一个空格作为分隔符:

    elm.className += " " + this.imgClass;
    
    链接地址: http://www.djcxy.com/p/25225.html

    上一篇: Adding parameters to function

    下一篇: how to change the style of clicked th in table