-1

我有一个元素,我想提醒这个元素的类属性我使用这个代码;

<li id="SSS" class="settings" onclick="alertClassName(this)">1111</li>

并在 alertClassName 函数中;

function changeClass(elem)
{
var x = $(elem.id);
alert(x.class) ;
}

它提醒未定义。

4

5 回答 5

2

尝试使用className而不是class.

onclick="alertClassName(this)"

...

function alertClassName(elem) {
  alert(elem.className);
}

参考

于 2013-07-07T11:22:36.667 回答
1

首先,您必须确定函数名称(alertClassNamechangeClass)。我将使用alertClassName它与问题标题匹配:

这里:

<li id="SSS" class="settings" onclick="alertClassName(this)">1111</li>

...您将对实际元素的引用传递到您的函数中。DOM0 处理程序属性中的this代码内onxyz指的是该onxyz属性所在的元素。

这意味着您可以直接使用它:

function alertClassName(elem)
{
    alert(elem.className);
}

如果你想改变它:

<li id="SSS" class="settings" onclick="changeClass(this, 'foo')">1111</li>

function changeClass(elem, newClass)
{
    elem.className = newClass;
}

...将在单击元素时从元素中删除所有类并添加foo类。

于 2013-07-07T11:30:25.323 回答
1

您可以通过className属性直接访问类名(在这种情况下不需要 jQuery):

function alertClassName(elem)
{
    alert(elem.className);
}
于 2013-07-07T11:23:19.573 回答
0

您尝试激活与您发布的功能不同的功能)alertClassName而不是changeClass

这是一个如何提醒然后更改元素类的示例。(这是小提琴)。

和代码:

<li id="SSS" class="settings" onclick="changeClass(this)">1111</li>

<script>
function changeClass(e)
{
    alert("Current Class:" + e.className);
    e.className = "Settings2";
    alert("Updated Class:" + e.className);
}
</script>
于 2013-07-07T11:37:44.793 回答
-2

尝试:

alert($(this).attr('class'))
于 2013-07-07T11:22:26.993 回答