在javascript中获取类名时出错

Error in getting class name in javascript

本文关键字:出错 获取 javascript      更新时间:2023-09-26

我在HTML中有这个代码片段

<ul class="orderedList">
    <li class="il l1">Appathon 2k14</li>
    <li class="il l2">Da Vinci Code</li>
    <li class="il l3">Java Beans</li>
    <li class="il l4">Gigabyte Wars</li>
    <li class="il l5">Spin A Web</li>
</ul>

我有事件处理程序的每个列表项目在我的jquery脚本像这样:

$(".l1").click(function x() {
    alert("Description : 'n " + eventsDescription[0] + "'n'nLocation : 'n" + loc[0]);
});
$(".l2").click(function x() {
    alert("Description : 'n " + eventsDescription[1] + "'n'nLocation : 'n" + loc[1]);
});
$(".l3").click(function x() {
    alert("Description : 'n " + eventsDescription[2] + "'n'nLocation : 'n" + loc[2]);
});
$(".l4").click(function x() {
    alert("Description : 'n " + eventsDescription[3] + "'n'nLocation : 'n" + loc[3]);
});
$(".l5").click(function x() {
    alert("Description : 'n " + eventsDescription[4] + "'n'nLocation : 'n" + loc[4]);
});

现在我正在考虑这样优化我的逻辑:

$(".il").click(function x() {
    alert($(".il").attr("class"));
});

由于'il'是每个标记(列表项)中存在的类,当我单击任何列表项时,它应该返回类的名称。我的问题是,当我单击任何列表项时,我在警报对话框中得到结果'l1 il'

根据我的代码,我认为我应该得到'l2 il'通过点击第二个项目等其余的项目。

您应该使用$(this)引用,

$(".il").click(function x() { alert($(this).attr("class")); });

在你的代码中,你在一个元素集合上调用.attr(),这导致检索在该集合的0索引中存在的元素的类名。

代码已写好。如果你想要其他选项,试试这个

$(".orderedList li").click(function() { alert($(this).attr("class")); });