Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查HTML元素是否为HTML媒体元素_Javascript_Html_Media - Fatal编程技术网

Javascript 检查HTML元素是否为HTML媒体元素

Javascript 检查HTML元素是否为HTML媒体元素,javascript,html,media,Javascript,Html,Media,我正在构建一个helper函数来将元素插入DOM。以下是我目前掌握的情况: function insertElem(numberOfElems, elemTag, elemId, elemClass, parentSelector){ /* * numberOfElements:- Pass in a plain whole integer. * elemId:- Pass in a name for the element id (inside "" or ''

我正在构建一个helper函数来将元素插入DOM。以下是我目前掌握的情况:

function insertElem(numberOfElems, elemTag, elemId, elemClass, parentSelector){
/*
* numberOfElements:-    Pass in a plain whole integer.
* elemId:-              Pass in a name for the element id (inside "" or ''),
                        an integer is appended to the id name by the for loop.               
* elemTag:-             Pass in the element tag type (inside "" or '').                   
* parentSelector:-      Pass in the identifier of the parent element (inside "" or '')
                        *querySelector prefixes:    # = id
                                                    . = class
                                                    none = tag               
*/      
  if (numberOfElems > 1) {
    for (i = 0; i < numberOfElems; i++) {
      var elem = this[elemId + i];
      elem = document.createElement(elemTag);
      elem.id = elemId + '_' + i;
      elem.className = elemClass;
      parentEl = document.querySelector(parentSelector);
      parentEl.appendChild(elem);
    }
  } else {
    var elem = this[elemId];
    elem = document.createElement(elemTag);
    elem.id = elemId;
    elem.className = elemClass;
    parentEl = document.querySelector(parentSelector);
    parentEl.appendChild(elem);
  }
}
你可以用它来看看它是否是一个

console.logdocument.getElementById'test1'实例为HTMLMediaElement console.logdocument.getElementById'test2'实例为HTMLMediaElement
继Dave的上述回答之后,HTMLMediaElement是HtmlLaudioElement和HTMLVideoElement的基类,因此,如果您想检查特定类型的媒体,也可以使用相应类型的实例进行检查。

感谢Dave的提示,这正是我现在想要的:-

function insertElem(numberOfElems, elemTag, elemId, elemClass, parentSelector, elemSrc){
    /*
    * numberOfElements:-    Pass in a whole integer.
    * elemTag:-             Pass in the element tag type (inside "" or '').              
    * elemId:-              Pass in a name for the element id (inside "" or ''),
                            an integer is appended to the id name by the for loop.
    * elemClass:-           Pass in a name for element class (inside "" or '').
    * parentSelector:-      Pass in the identifier of the parent element (inside "" or '')
                            * querySelector prefixes:    # = id
                                                         . = class
                                                         none = tag 
    *elemSrc:-              Pass in the source media url (inside "" or ''). 
    */      
      if (numberOfElems > 1) {
        for (i = 0; i < numberOfElems; i++) {
          var elem = this[elemId + i];
          elem = document.createElement(elemTag);
          elem.id = elemId + '_' + i;
             if (elemClass) {
                elem.className = elemClass;
             }
          parentEl = document.querySelector(parentSelector);
          parentEl.appendChild(elem);
            if(elem instanceof HTMLMediaElement) {
                elem.src = elemSrc;
            }
        }
      } else {
        var elem = this[elemId];
        elem = document.createElement(elemTag);
        elem.id = elemId;
            if (elemClass) {
                elem.className = elemClass;
            }
        parentEl = document.querySelector(parentSelector);
        parentEl.appendChild(elem);
           if(elem instanceof HTMLMediaElement) {
                elem.src = elemSrc;
          }
      }
    }

为什么不设置一个属性对象并在其上循环呢?干杯,戴夫,这听起来好像能奏效。当我有机会的时候,我会尝试一下,当我这样做的时候,我会给出反馈!助教!
function insertElem(numberOfElems, elemTag, elemId, elemClass, parentSelector, elemSrc){
    /*
    * numberOfElements:-    Pass in a whole integer.
    * elemTag:-             Pass in the element tag type (inside "" or '').              
    * elemId:-              Pass in a name for the element id (inside "" or ''),
                            an integer is appended to the id name by the for loop.
    * elemClass:-           Pass in a name for element class (inside "" or '').
    * parentSelector:-      Pass in the identifier of the parent element (inside "" or '')
                            * querySelector prefixes:    # = id
                                                         . = class
                                                         none = tag 
    *elemSrc:-              Pass in the source media url (inside "" or ''). 
    */      
      if (numberOfElems > 1) {
        for (i = 0; i < numberOfElems; i++) {
          var elem = this[elemId + i];
          elem = document.createElement(elemTag);
          elem.id = elemId + '_' + i;
             if (elemClass) {
                elem.className = elemClass;
             }
          parentEl = document.querySelector(parentSelector);
          parentEl.appendChild(elem);
            if(elem instanceof HTMLMediaElement) {
                elem.src = elemSrc;
            }
        }
      } else {
        var elem = this[elemId];
        elem = document.createElement(elemTag);
        elem.id = elemId;
            if (elemClass) {
                elem.className = elemClass;
            }
        parentEl = document.querySelector(parentSelector);
        parentEl.appendChild(elem);
           if(elem instanceof HTMLMediaElement) {
                elem.src = elemSrc;
          }
      }
    }