[英]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.