Javascript 如何找到由js动态创建的对象的类?

Javascript 如何找到由js动态创建的对象的类?,javascript,jquery,Javascript,Jquery,我有一个元素div,它是由js创建的,我想让它类化。 我尝试getElementsByClassName('lt-label')(它起作用),然后我想检查lt-label是否有类lt-online,以及页面上的另一个块是否为block。 我的代码: $(文档).ready(函数(){ if(document.getElementsByClassName){ var redTags=document.getElementsByClassName('lt-label'); 如果(redTags.is

我有一个元素
div
,它是由js创建的,我想让它类化。 我尝试
getElementsByClassName('lt-label')
(它起作用),然后我想检查lt-label是否有类lt-online,以及页面上的另一个块是否为block。 我的代码:

$(文档).ready(函数(){
if(document.getElementsByClassName){
var redTags=document.getElementsByClassName('lt-label');
如果(redTags.is(“.lt在线”)){
$(“#l-b-wrapper”).css({
“显示”:“块”
});
};
};
});
但它不起作用。我哪里有错

我给出一个链接只是因为html代码太大了,我不能完整地显示我的问题

lt标签-是一个右页小部件按钮


l-b-wrapper-左侧页面小部件按钮您正在混合本机和jQuery,使用jQuery对象,因为
文档。getElementsByClassName
将返回
类似数组的对象,而它们没有jQuery方法

$(document).ready(function() {
    if ($('.lt-label').is(".lt-online")) {
        $("#l-b-wrapper").css({
            'display': 'block'
        });
    };
});

您有一个非常奇怪的本地JS和jQuery的混合,这就是问题的根源

getElementsByClassName
返回没有
is()
方法的doElement数组。如果使用jQuery选择元素,则既可以避免问题,又可以缩短代码:

$(function() {
    if ($('.lt-label').hasClass('.lt-online')) {
        $("#l-b-wrapper").show();
    }
});

请注意,如果找到多个
.lt label
元素,则可能需要根据所需的行为对其进行循环。

要使用jquery方法,需要使用jquery对象,否则会出现
错误:方法未定义
。因此,您也可以使用jquery包装javascript对象,如下所示:

if ($(redTags[0]).is(".lt-online")) {
其中,redTags由jQuery ie.
$()
包装,我们对第一个元素使用
[0]
作为
getElementsByClassName
类似结果数组的对象


但为了简单起见,在使用jQuery时,我会选择simply jQuery对象:


$('.lt-label')
而不是
document.getElementsByClassName('lt-label')

正如您应该知道的那样,jQuery有自己的方法字典,并且它只适用于jQuery对象。您正在尝试将jQuery方法
.is()
绑定到dom对象,这会导致错误,因为
.is()
仅适用于jq对象

这样就可以了(创建jq包装):

您可以将其缩短为:

$(document).ready(function() {
    var redTags = $('.lt-label');
    $("#l-b-wrapper").css({
        'display': function(){
            return redTags.is(".lt-online") ? "block" : "none";
         }
    });
});

如果只想显示/隐藏元素,则可以使用
.toggle(布尔)
方法:

$(document).ready(function() {
    var redTags = $('.lt-label');
    $("#l-b-wrapper").toggle(redTags.is(".lt-online"));
});

我不明白你的意思,不管用。粘贴您的代码,但没有任何更改。如果我在函数内部编写getElement ant alert(仅用于测试),它可以工作,但是$('.lt-label').hasClass-不…请将HTML添加到问题中。在条件中有轻微的输入错误。如果我只能使用document.getElementsByClassName('lt-label')?是的,您可以看到答案。
$(document).ready(function() {
    var redTags = $('.lt-label');
    $("#l-b-wrapper").toggle(redTags.is(".lt-online"));
});