检查HTML元素是否需要源属性

sti*_*ick 5 javascript src

继我之前的问题之后.我创建了一个辅助函数(见下文),将元素插入到DOM中.函数的一部分使用'instanceof'来确定'this'元素是否是HTMLMediaElement的实例,并通过参数'elemSrc'确定source属性.

我的问题:有没有办法检查一个元素是否"期望"定义一个源属性?我问的原因是,我可以将此函数用于"期望"定义源属性的所有元素.我知道我可以使用instanceof&reel关闭每个使用source属性的元素,但如果可能的话,我更喜欢更流畅的方式.

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;
          }
      }
    }
Run Code Online (Sandbox Code Playgroud)

hev*_*ev1 3

您可以检查srcHTML 元素中是否存在作为键。

if('src' in elem){
   //src is a valid attribute for elem
}
Run Code Online (Sandbox Code Playgroud)

演示:

if('src' in elem){
   //src is a valid attribute for elem
}
Run Code Online (Sandbox Code Playgroud)