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

时间:2014-01-28 19:52:07

标签: javascript 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方面做到这一点吗?

5 个答案:

答案 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更改。