Javascript 如何在单击div而不是标记时获取div中标记的类列表?

Javascript 如何在单击div而不是标记时获取div中标记的类列表?,javascript,html,Javascript,Html,我有2个div包含一个标记以及如下所示的I标记。我使用的是一个点击函数,它并不表示您必须使用它来编写函数,use可以使用类似于点击此项的内容获取元素,并在这些元素中找到它所在的特定类 <div class="div" onclick="getclassofitag()"> <a class="atag"></a> <i class="itag1 itag2"></i> </div> <div onclick="

我有2个div包含一个标记以及如下所示的I标记。我使用的是一个点击函数,它并不表示您必须使用它来编写函数,use可以使用类似于点击此项的内容获取元素,并在这些元素中找到它所在的特定类

<div class="div" onclick="getclassofitag()">
  <a class="atag"></a>
  <i class="itag1 itag2"></i>
</div>
<div onclick="getclassofitag()">
  <a class="atag"></a>
  <i class="itag11 itag22"></i>
</div>

}
}

它将显示一个高50px、宽100%的div,颜色为红色。单击每个div时,我只想为单击的div应用一些类。

使用classList属性将为您提供标记中的类列表:

<div class="div" onclick="getclassofitag(this)">Test1
  <a class="atag"></a>
  <i class="itag1 itag2"></i>
</div>
<div onclick="getclassofitag(this)">Test2
  <a class="atag"></a>
  <i class="itag11 itag22"></i>
</div>

<script type="text/javascript"> 
function getclassofitag(element) {
    aTags = element.getElementsByTagName("a");
    aTagsClass = [];
    for(var i=0; i<aTags.length; i++) {
        for(var j=0; j<aTags[i].classList.length; j++) {
            aTagsClass.push(aTags[i].classList[j]);
        }
    }


    iTags = element.getElementsByTagName("i");
    iTagsClass = [];
    for(var i=0; i<iTags.length; i++) {
        for(var j=0; j<iTags[i].classList.length; j++) {
            iTagsClass.push(iTags[i].classList[j]);
        }
    }
    //This will give you the array of classes in `a` tag and `i` tag
    console.dir(aTagsClass);
    console.dir(iTagsClass);
}
</script>
Test1
测试2
函数getclassofitag(元素){
aTags=element.getElementsByTagName(“a”);
aTagsClass=[];

对于(var i=0;i,使用classList属性将提供标记中的类列表:

<div class="div" onclick="getclassofitag(this)">Test1
  <a class="atag"></a>
  <i class="itag1 itag2"></i>
</div>
<div onclick="getclassofitag(this)">Test2
  <a class="atag"></a>
  <i class="itag11 itag22"></i>
</div>

<script type="text/javascript"> 
function getclassofitag(element) {
    aTags = element.getElementsByTagName("a");
    aTagsClass = [];
    for(var i=0; i<aTags.length; i++) {
        for(var j=0; j<aTags[i].classList.length; j++) {
            aTagsClass.push(aTags[i].classList[j]);
        }
    }


    iTags = element.getElementsByTagName("i");
    iTagsClass = [];
    for(var i=0; i<iTags.length; i++) {
        for(var j=0; j<iTags[i].classList.length; j++) {
            iTagsClass.push(iTags[i].classList[j]);
        }
    }
    //This will give you the array of classes in `a` tag and `i` tag
    console.dir(aTagsClass);
    console.dir(iTagsClass);
}
</script>
Test1
测试2
函数getclassofitag(元素){
aTags=element.getElementsByTagName(“a”);
aTagsClass=[];
对于(var i=0;i而言,这可能会有所帮助

var c = element.childNodes; //get element from click event
for (i = 0; i < c.length; i++) {
    console.log(c[i].nodeName) //You will get child tags <i> & <a> 
}
var c=element.childNodes;//从单击事件获取元素
对于(i=0;i
将用户类(其样式以红色显示)添加到c[i]。nodeName

可能会有所帮助

var c = element.childNodes; //get element from click event
for (i = 0; i < c.length; i++) {
    console.log(c[i].nodeName) //You will get child tags <i> & <a> 
}
var c=element.childNodes;//从单击事件获取元素
对于(i=0;i

将用户类(其样式显示为红色)添加到c[i]中。nodeName

嘿,brianlmerritt请仔细阅读问题,只需阅读标题,不要重复……如果无法回答,请远离……标记的意思,……因此在这个问题中,我需要找到这些类,因为我需要在jquery中替换它们,我们将使用它们$(此).find('fa chevron down')要在我们单击的元素中找到类,我需要替换这个类Hey brianlmerritt请仔细阅读问题,只需阅读标题,不要重复…如果你不能回答,请远离…标记意味着,,…因此在这个问题中,我需要找到这些类,因为我需要替换我们将使用的jquery中的类$(此).find('fa chevron down')要在我们单击的元素中找到类,我需要此元素的替换项Hwetha,它将只接受单击的项ryt?是的,您将获得单击的DIV和tag类..您在问题中提到您需要单击的DIV和tags类列表,对吗?不要投票否决,让我知道您到底想要什么…您很好仅…我需要更多帮助。我如何切换该i标记中的一个类?你能告诉我吗?。我的意思是,不记录类列表,我如何切换该列表中的类。感谢投票。你可以使用iTags[0]。classList.toggle('itag1'));这将切换i tag.shwetha的'itag1'类,它将只接受单击的项目ryt?是的,您将获得单击的DIV和tag类..您在问题中提到,您需要单击的DIV和tags类列表,对吗?不要投票否决,让我知道您到底想要什么没有办法…您很好…我需要更多帮助i切换该i标记中的一个类?你能告诉我吗?。我的意思是,不记录类列表,我如何切换该列表中的类。感谢投票。你可以使用iTags[0]。classList.toggle('itag1');这将切换i标记的'itag1'类。