【问题标题】:How to find element type in JQuery如何在 JQuery 中查找元素类型
【发布时间】:2012-02-08 06:00:24
【问题描述】:

我有一个数组,里面有不同的元素。像数组一样包含输入元素和选择元素。我想检查特定类型。我试过了,但是没有用

var mandotaryElementsArray = $('.mandotary');

$.each(mandotaryElementsArray, function(index, element){

    if (element == input) {

        var $inputElement = $(this);
        var test1;

    } else if (element == select) {

        var $selectElement = $(this);
        var test2;

    }

}); //end of .each()

实际上我想检查类似于 Java 中的 instance of 的东西。在这里我想检查元素是否是 input 类型然后执行此操作,如果元素是 select 类型则执行此操作,如果元素是 radiobutton 类型strong> 然后这样做.. 我怎样才能在这里进行检查? 谢谢

【问题讨论】:

标签: jquery


【解决方案1】:

您可以使用.tagName 属性(对于HTML,它总是返回大写):

$('.mandotary').each(function(index, element) {
    if (element.tagName == "INPUT") {
        // code here
    } else if (element.tagName == "SELECT") {
        // code here
    }
});

或者,你可以使用 jQuery 的.is():

$('.mandotary').each(function(index, element) {
    var $element = $(element);
    if ($element.is('input')) {
        // code here
    } else if ($element.is('select')) {
        // code here
    }
});

更好的方法可能是让选择器为您完成所有工作,只需选择您想要进行特定操作的项目,然后对所需的选择器进行操作,如下所示:

$('input.mandotary').hide();
$('select.mandotary').show();

【讨论】:

    【解决方案2】:

    只需使用.is() 匹配标签名称即可:

    if (element.is('input'))
    

    但理想情况下重新编写代码并且不要检查循环中的标记名称。

    【讨论】:

    • 嗨,谢谢,实际上在我的页面中有几个我想检查的元素。像 textField,我想检查是否为空,选择我想检查是否选择了特定值的元素,我想检查的复选框,是否打勾等等。所以我做了什么,我给了他们每个人一个类 mandotary 然后在数组中得到。正如我上面所做的那样。现在,如果在数组中我有作为输入元素的文本字段,那么我检查 null,如果它是 select,那么我可以检查值等等。现在你能告诉我我怎样才能更好地做这件事。正如你所说最好重新编写代码:)谢谢
    猜你喜欢
    • 2013-09-21
    • 2010-10-11
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2018-06-30
    相关资源
    最近更新 更多