Je construis une fonction d'assistance pour insérer des éléments dans le DOM. Voici ce que j'ai jusqu'à présent:
if (elem is an html media element) { elem.src = media url; }
Je voudrais pouvoir vérifier si "elem" est un élément multimédia HTML pour pouvoir ajouter un argument ("elemSrc") à ma fonction .
Pseudo-code:
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); } }
3 Réponses :
Vous pouvez simplement utiliser instanceof pour voir s'il s'agit d'un HTMLMediaElement
p>
<video id="test1"></video> <div id="test2"></video>
console.log(document.getElementById('test1') instanceof HTMLMediaElement) console.log(document.getElementById('test2') instanceof HTMLMediaElement)
Salut Dave, cela semble faire l'affaire. J'essaierai cela quand j'aurai l'occasion et donnerai des commentaires quand je l'aurai fait! Ta!
Suite à la réponse de Dave ci-dessus, HTMLMediaElement
est la classe de base pour HTMLAudioElement
et HTMLVideoElement
donc si vous voulez vérifier un type spécifique des médias, vous pouvez également le faire en utilisant instanceof
les types mentionnés respectifs.
Merci pour le conseil Dave, ceci fait ce que je veux pour le moment: -
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; } } }
Pourquoi ne pas avoir simplement un objet de propriétés à définir et à boucler dessus?