首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery:测试输入变量是否为dom元素

问jquery:测试输入变量是否为dom元素
EN

Stack Overflow用户
提问于 2011-02-18 04:14:45
回答 4查看 10.8K关注 0票数 11

我想写一个jquery函数,它接受dom元素或它的id作为输入:

代码语言:javascript
复制
function myfunction(myinput){
 // pseudocode:
 // if (myinput is dom element){
 //   var myID = $(myinput).attr('id');
 // } else {
 //   var myID = myinput;
 // }

 // Do stuff with myID ...

}

问:如何判断我的输入是否是dom元素?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-18 04:35:05

反过来检查更容易-检查它是否是字符串,如果是,则使用它来获取ID,否则将其视为DOM节点/元素,并将其作为一个元素来处理。

代码语言:javascript
复制
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。

代码语言:javascript
复制
    ...

    if (myinput instanceof HTMLElement){
        myId = myinput.id; // myinput.id is enough
    } else {
        myId = myinput;
    }

    ...

到头来这真的无关紧要了。你说了算!

汤姆

票数 21
EN

Stack Overflow用户

发布于 2011-02-18 04:38:47

你可以这样实现你的函数:

代码语言:javascript
复制
function myfunction(myinput){

 if (myinput.nodeType){
    var myID = $(myinput).attr('id');
 } else {
    var myID = myinput;
 }

 // Do stuff with myID ...

}

有关nodeType的更多信息。

票数 6
EN

Stack Overflow用户

发布于 2011-02-18 06:03:59

我想知道一个很好的三元组是否可以工作,就像这样

代码语言:javascript
复制
var myID = $(myInput).attr('id') ? $(myInput).attr('id') : myInput;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5034067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档