[英]Setting the value/text of event.target with jQuery
我有以下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方面甚至可以做到这一点吗?
您可以简单地使用this
。
$('.comment > a').click( function (event) {
$(this).text("");
//Other stuff
});
您不必使用event.target
this
是指您已附加事件的元素。 在您的情况下, $('.comment > a')
如果您在容器.comment
正下方有多个锚定链接,则有助于区分它们,并且您可以使用这些锚定链接中的每一个进行特定操作。
要将文本设置为空白,请使用.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();
});
});
最好是增加;
在代码行的末尾! :)
你是说它消失了吗? 您可以这样做:
$(this).hide();
要么
$(this).text("");
您正在使用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()
})
})
这将为您节省在不同浏览器中使用不同事件结构的麻烦
尝试:
event.target.innerHTML = "";
要么
event.currentTarget.innerHTML = "";
要么
this.innerHTML = "";
event.target
是DOM顶部的第一个元素。 这意味着如果您的a
有一个跨度,则将选择该跨度。
这就是为什么使用currentTarget
更安全的原因,因为currentTarget
是绑定事件的元素。
this
默认相同currentTarget
但此值可以通过改变.apply()
.call()
或.bind
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.