繁体   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