Javascript 检查HTML元素是否为HTML媒体元素
我正在构建一个helper函数来将元素插入DOM。以下是我目前掌握的情况: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 ''
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;
}
}
}