jquery:测试输入变量是否为dom元素
我想编写一个jquery函数,它接受一个dom元素或它的id作为输入:
function myfunction(myinput){ // pseudocode: // if (myinput is dom element){ // var myID = $(myinput).attr('id'); // } else { // var myID = myinput; // } // Do stuff with myID ... }
问题:如何判断myinput是否为dom元素?
反过来检查更容易 – 检查它是否是一个字符串,如果是这样,使用它来获取ID,否则将其视为一个DOM节点/元素,并像处理它一样处理它。
function myfunction(myinput) { var myId; if (typeof myinput == 'string'){ myId = myinput; } else { myId = myinput.id; // myinput.id is enough } // do something }
或者如果你真的要检查它是否是HTMLElement,那么每个DOM html元素都会扩展HTMLElement抽象接口。 检查MDC以获取有关HTMLElement的更多信息。
... if (myinput instanceof HTMLElement){ myId = myinput.id; // myinput.id is enough } else { myId = myinput; } ...
最后它真的不重要……你的电话!
汤姆
您可以像这样实现您的function:
function myfunction(myinput){ if (myinput.nodeType){ var myID = $(myinput).attr('id'); } else { var myID = myinput; } // Do stuff with myID ...
}
有关nodeType的更多信息。
我想知道一个好的三元是否会起作用,就像这样
var myID = $(myInput).attr('id') ? $(myInput).attr('id') : myInput;
if( myinput instanceof domElement ) alert("Yes");