我想写一个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 ...
}问:如何判断我的输入是否是dom元素?
发布于 2011-02-18 04:35:05
反过来检查更容易-检查它是否是字符串,如果是,则使用它来获取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元素都扩展了HTMLElement抽象接口。有关HTMLElement的更多信息,请访问Check MDC。
...
if (myinput instanceof HTMLElement){
myId = myinput.id; // myinput.id is enough
} else {
myId = myinput;
}
...到头来这真的无关紧要了。你说了算!
汤姆
发布于 2011-02-18 04:38:47
你可以这样实现你的函数:
function myfunction(myinput){
if (myinput.nodeType){
var myID = $(myinput).attr('id');
} else {
var myID = myinput;
}
// Do stuff with myID ...}
有关nodeType的更多信息。
发布于 2011-02-18 06:03:59
我想知道一个很好的三元组是否可以工作,就像这样
var myID = $(myInput).attr('id') ? $(myInput).attr('id') : myInput;https://stackoverflow.com/questions/5034067
复制相似问题