Javascript 检查HTML元素是否需要源属性
继续我上一个问题。我制作了一个helper函数(见下文),将元素插入DOM。函数的一部分使用“instanceof”确定“this”元素是否为HtmlMedia元素的实例,并通过参数“elemSrc”确定源属性 我的问题:是否有办法检查元素是否“期望”定义源属性?我问这个问题的原因是,我可以对“expect”定义了源属性的所有元素使用这个函数。我知道我可以使用instanceof&relk关闭使用source属性的每个元素,但是如果可能的话,我更喜欢使用更流畅的方法Javascript 检查HTML元素是否需要源属性,javascript,src,Javascript,Src,继续我上一个问题。我制作了一个helper函数(见下文),将元素插入DOM。函数的一部分使用“instanceof”确定“this”元素是否为HtmlMedia元素的实例,并通过参数“elemSrc”确定源属性 我的问题:是否有办法检查元素是否“期望”定义源属性?我问这个问题的原因是,我可以对“expect”定义了源属性的所有元素使用这个函数。我知道我可以使用instanceof&relk关闭使用source属性的每个元素,但是如果可能的话,我更喜欢使用更流畅的方法 function inser
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
最好的选择是创建一个包含所有支持源属性的标记的数组,然后检查数组中是否存在标记