【发布时间】:2015-10-29 19:53:24
【问题描述】:
我尝试访问我单击的行以添加或删除一个类,但似乎我误解了this 的值。不是应该是调用事件的 DOM(在本例中为 <li>)吗?这是我的代码:
JAVASCRIPT
$(document).on('click', '.ToDownload', function()
{
if($(this).className.lastIndexOf("isSelected") != -1)
{
$(this).addClass("isSelected");
$(this).css('border', '2px solid #000099')
}
else
{
$(this).removeClass("isSelected");
$(this).css('border', 'none')
}
});
HTML
<li id="addedDownloadFileRow" class="fitting ToDownload">
<a href="#">
<div class="ui-grid-a">
<div class="ui-block-a">test1</div>
<div class="ui-block-b">test2</div>
</div>
</a>
</li>
事实上,我认为我可以使用属性className 来查找我的行是否已被选中,但似乎this 不是<li> 标记的DOM。任何信息或查看 this 真正含义的方法将不胜感激。
附: “拟合”类仅用于某些 css 目的。
【问题讨论】:
-
是什么让你认为里面是
<li>而不是<div>? -
@azium 大概是因为在对
on()的调用中使用了'.ToDownload' -
console.log(this)或console.dir(this)会告诉你你想要什么。 -
我会使用
if($(this).is(".isSelected"))来检查是否选择了元素 -
"this" 指的是当前元素,基本语法是:
$(selector).action()
标签: javascript jquery this event-delegation