我第一次使用jQuery并需要一些帮助.我有html,如下所示:
<div id='comment-8' class='comment'>
<p>Blah blah</p>
<div class='tools'></div>
</div>
<div id='comment-9' class='comment'>
<p>Blah blah something else</p>
<div class='tools'></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用jQuery向.tools div添加跨度,这些div在单击时调用variouis函数.函数需要接收父注释的id(整个'comment-8'或只是'8'部分),这样我就可以显示有关注释的表单或其他信息.
我到目前为止:
<script type='text/javascript'>
$(function() {
var actionSpan = $('<span>[Do Something]</span>');
actionSpan.bind('click', doSomething);
$('.tools').append(actionSpan);
});
function doSomething(commentId) { alert(commentId); }
</script>
Run Code Online (Sandbox Code Playgroud)
我坚持如何填充doSomething的commentId参数.也许不是id,我应该传递对被点击的跨度的引用.这也许会很好,但我不确定如何做到这一点.
谢谢,Brian
使用事件对象作为第一个参数调用事件回调,您不能以这种方式传递其他内容.此事件对象具有一个target
引用其所调用元素的属性,该this
变量是对事件处理程序所附加元素的引用.所以你可以做到以下几点:
function doSomething(event)
{
var id = $(event.target).parents(".tools").attr("id");
id = substring(id.indexOf("-")+1);
alert(id);
}
Run Code Online (Sandbox Code Playgroud)
...要么:
function doSomething(event)
{
var id = $(this).parents(".tools").attr("id");
id = substring(id.indexOf("-")+1);
alert(id);
}
Run Code Online (Sandbox Code Playgroud)