如何选择相对于';这';在javascript中
我有以下资料:如何选择相对于';这';在javascript中,javascript,jquery,Javascript,Jquery,我有以下资料: <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>
<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>
如何修复此问题?在javascript中,
这本质上是当前函数的上下文。在jQuery事件回调中,此
被设置为事件的源元素,而不是选择器字符串,您将其视为选择器字符串
相反,您希望执行如下测试:if($(“a”,this).is(“:contains(OK)”){
这是因为的第二个参数是要搜索的上下文,所以您只搜索click的源元素下的a
标记。在javascript中,此
基本上是当前函数的上下文。在jQuery事件回调中,此
被设置为事件-不是选择器字符串,您将其视为选择器字符串
相反,您希望执行如下测试:if($(“a”,this).is(“:contains(OK)”){
这是因为的第二个参数是要搜索的上下文,因此您只搜索单击的源元素下的a
标记。好的,有两种方法:
.查找(选择器)
或
$(选择器,上下文)
好的,有两种方法:
.查找(选择器)
或
$(选择器,上下文)
将click元素绑定到Div,然后检查A标记的文本字符串将使每次单击都发生这两个事件。您希望在每个A标记上绑定两个单独的click事件。为每个A标记添加一个ID,然后重试此代码
$('#okLinkID').click(function(){
console.log("OK!!");
});
$('#cancelLinkID').click(function(){
console.log("Cancel!!");
});
将click元素绑定到Div,然后检查A标记的文本字符串将使每次单击都发生这两个事件。您希望在每个A标记上绑定两个单独的click事件。为每个A标记添加一个ID,然后重试此代码
$('#okLinkID').click(function(){
console.log("OK!!");
});
$('#cancelLinkID').click(function(){
console.log("Cancel!!");
});
//仅将一个侦听器附加到#message div,并侦听其中要单击的任何“a”元素
$('a','#message').on('click',function(){
var $this = $(this),
btnText = $this.text();
console.log(btnText);
});
//只将一个侦听器附加到#message div,并侦听其中要单击的任何“a”元素
$('a','#message').on('click',function(){
var $this = $(this),
btnText = $this.text();
console.log(btnText);
});
您希望this+'>a'
具体做什么?将对象与字符串连接将调用对象上的toString()
,这将导致字符串'[对象]>a'
。您可能已经尝试过了。为什么要将单击事件绑定到div?为什么不将两个单独的单击事件绑定到a元素?为什么不为每个锚连接事件侦听器?我假设它包含div消息,所以我认为$(this+“>a”)可能会选择div#message的子元素,即“a”David Thomas。我认为您的方法不受欢迎。您希望this+'>a'
具体做什么?将对象与字符串连接将调用对象上的toString()
,这将导致字符串“[object object]>a'
。您可能已经尝试过了。为什么要将单击事件绑定到div?为什么不将两个单独的单击事件绑定到a元素?为什么不为每个锚连接事件侦听器?我假设它包含div消息,所以我认为$(this+“>a”)可能会选择div#message的子元素,即“a”David Thomas。我认为您的方法不受欢迎。您也可以使用.closest(),如果需要,还可以使用.child(),.next()等来选择与单击的元素相关的元素。只需更新我以前的注释,就没有子元素()选择器,而不是.children()选择器和:nth-child()选择器。您还可以使用.closest(),如果需要,还可以使用.child()、.next()等来选择与单击的元素相关的元素。只是对我以前的注释进行更新,没有child()选择器,而是.children()选择器和:nth-child()选择器。
$('a','#message').on('click',function(){
var $this = $(this),
btnText = $this.text();
console.log(btnText);
});