如何选择与'这'在javascript中

How to select element relative to 'this' in javascript

本文关键字:javascript 何选择 选择      更新时间:2023-09-26

我有以下内容:

<div class="tab-pane" id="message">
      <textarea rows="4" cols="50" id="send_message" placeholder="Enter text ...">  </textarea>
      <a href="#message" class="btn btn-large btn-info"  data-toggle="tab">OK</a>
      <a href="#message" class="btn btn-large btn-info"  data-toggle="tab">Cancel</a>

我想将click方法绑定到"div"元素,当单击其中一个子"a"元素时,执行单独的操作。我试图使用按钮文本来区分它们,但以下内容不起作用:

$(function(){
$('#message').click(function(){
if($(this + ">a").is(":contains(OK)")) {
        console.log("OK!!");

我该怎么解决这个问题?

好的,有两种方法:

.fund(选择器)

 if(this).find("a").is(":contains(OK)")) {
    console.log("OK!!");

$(选择器,上下文)

 if("a",this).is(":contains(OK)")) {
    console.log("OK!!");

在javascript中,this本质上是当前函数的上下文。在jQuery事件回调中,this被设置为事件的源元素,而不是选择器字符串,这就是您将其视为的。

相反,您想做一个测试,比如:if($("a", this).is(":contains(OK)")) {

这是因为jQuery选择器的第二个参数是要搜索的上下文,所以您只搜索单击的源元素下的a标记。

将click元素绑定到div,然后检查A标记的文本字符串将使这两个事件在每次单击时都发生。您希望在每个A标记上绑定2个单独的单击事件。为每个A标签添加一个ID,然后尝试此代码

$('#okLinkID').click(function(){
  console.log("OK!!");
});
$('#cancelLinkID').click(function(){
  console.log("Cancel!!");
});

//只将一个侦听器附加到#messagediv,并侦听其中要单击的任何"a"元素。

$('a','#message').on('click',function(){
    var $this = $(this),
        btnText = $this.text();
    console.log(btnText); 
});

http://jsfiddle.net/YA7Ds/