Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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元素是否需要源属性_Javascript_Src - Fatal编程技术网

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

Javascript 检查HTML元素是否需要源属性,javascript,src,Javascript,Src,继续我上一个问题。我制作了一个helper函数(见下文),将元素插入DOM。函数的一部分使用“instanceof”确定“this”元素是否为HtmlMedia元素的实例,并通过参数“elemSrc”确定源属性 我的问题:是否有办法检查元素是否“期望”定义源属性?我问这个问题的原因是,我可以对“expect”定义了源属性的所有元素使用这个函数。我知道我可以使用instanceof&relk关闭使用source属性的每个元素,但是如果可能的话,我更喜欢使用更流畅的方法 function inser

继续我上一个问题。我制作了一个helper函数(见下文),将元素插入DOM。函数的一部分使用“instanceof”确定“this”元素是否为HtmlMedia元素的实例,并通过参数“elemSrc”确定源属性

我的问题:是否有办法检查元素是否“期望”定义源属性?我问这个问题的原因是,我可以对“expect”定义了源属性的所有元素使用这个函数。我知道我可以使用instanceof&relk关闭使用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;
          }
      }
    }
function insertElem(numberOfElems、elemTag、elemId、elemClass、parentSelector、elemSrc){
/*
*numberOfElements:-传入一个整数。
*elemTag:-传入元素标记类型(在“”或“”内)。
*elemId:-传入元素id的名称(在“”或“”内),
for循环将一个整数附加到id名称。
*elemClass:-传入元素类的名称(在“”或“”内)。
*parentSelector:-传入父元素的标识符(在“”或“”内)
*查询选择器前缀:#=id
.=类
无=标记
*elemSrc:-传入源媒体url(在“”或“”内)。
*/      
如果(numberOfElems>1){
对于(i=0;i
您可以检查
src
是否作为键存在于HTML元素中

if('src' in elem){
   //src is a valid attribute for elem
}
演示:

元素类型:

过程

var elemTypeInput=document.getElementById(“elemType”),processBtn=document.getElementById(“process”),res=document.getElementById(“结果”); processBtn.addEventListener(“单击”,函数(e){ var elemType=elemTypeInput.value; 如果(!elemType.trim()){ res.textContent=“元素类型不能为空!”; }否则{ 试一试{ var elem=document.createElement(elemType); var hasSrc='src'在elem中; res.textContent=elemType+“元素具有src属性:”+hasSrc; }捕获(e){ res.textContent=“请输入有效的元素类型。”; } } });
以下是更新后的功能:

function insertElem(numberOfElems, elemTag, elemId, elemClass, parentSelector, elemSrc){
/*
* numberOfElements:-    Pass in a whole integer.
* elemTag:-             Pass in the element tag type (as a string).              
* elemId:-              Pass in a name for the element id (as a string),
                        an integer is appended to the id name by the for 
                        loop.
* elemClass:-           Pass in a name for element class (as a string).
* parentSelector:-      Pass in the identifier of the parent element 
                        (as a string).
                        * querySelector prefixes:    # = id
                                                     . = class
                                                     none = tag 
*elemSrc:-              Pass in the source media url (as a string). 
*/      
  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('src' in elem) {
            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('src' in elem) {
            elem.src = elemSrc;
      }
  }
}
function insertElem(numberOfElems、elemTag、elemId、elemClass、parentSelector、elemSrc){
/*
*numberOfElements:-传入一个整数。
*elemTag:-传入元素标记类型(作为字符串)。
*elemId:-传入元素id的名称(作为字符串),
由for将整数追加到id名称
环
*elemClass:-传入元素类的名称(作为字符串)。
*parentSelector:-传入父元素的标识符
(作为字符串)。
*查询选择器前缀:#=id
.=类
无=标记
*elemSrc:-传入源媒体url(作为字符串)。
*/      
如果(numberOfElems>1){
对于(i=0;i
最好的选择是创建一个包含所有支持源属性的标记的数组,然后检查数组中是否存在标记