我有以下HTML:
<a class="small" href="/comments/new">Write New Comment</a>
以下是js:
$(document).ready(function () {
$('.comment > a').click( function (event) {
var url = event.target.href
$('.comment_area').load(url)
**event.target.text = ""**
event.preventDefault()
})
})
我正在尝试将链接的文本设置为空白,但似乎无法找到执行此操作的方法。我也试过了:
event.target.text("")
event.target.value = ""
并且这些都不起作用。甚至可以从JavaScript方面做到这一点吗?
答案 0 :(得分:3)
您只需使用this
即可。
$('.comment > a').click( function (event) {
$(this).text("");
//Other stuff
});
您不必使用event.target
this
指的是您附加事件的元素。在您的情况下,$('.comment > a')
如果您在容器.comment
下直接有多个锚链接,则有助于区分它们&amp;你可以用每个锚链接做特定的事情。
答案 1 :(得分:0)
要将文本设置为空白,请使用此方法.text('')
。
因此,您的方法将更改为以下方法:
$(document).ready(function () {
$('.comment > a').click( function (event) {
var url = event.target.href;
// this can be replaced by the following
var url = $(this).attr('href');
$('.comment_area').load(url);
$(this).text(''); // empty the current string
event.preventDefault();
});
});
最好在代码行的末尾添加;
! :)
答案 2 :(得分:0)
你的意思是它消失了吗?你可以这样做:
$(this).hide();
或
$(this).text("");
答案 3 :(得分:0)
你正在使用jQuery,为什么单独使用Javascript?
$(document).ready(function () {
$('.comment > a').click( function (event) {
$this = $(this);
var url = $this.attr('href');
$('.comment_area').load(url)
$this.text("");
event.preventDefault()
})
})
这将为您节省不同浏览器中不同事件结构的麻烦
答案 4 :(得分:0)
尝试:
event.target.innerHTML = "";
或
event.currentTarget.innerHTML = "";
或
this.innerHTML = "";
event.target
是DOM顶部的第一个元素。这意味着如果a
中有跨度,则会选择范围。
这就是为什么使用currentTarget
更安全,因为它是绑定事件的元素。
this
默认情况下与currentTarget
相同,但此值可以由.apply()
,.call()
或.bind
更改。