簡體   English   中英

使用jQuery設置event.target的值/文本

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM