首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择p标记中除input元素之外的所有元素

选择p标记中除input元素之外的所有元素
EN

Stack Overflow用户
提问于 2012-11-17 16:47:49
回答 1查看 172关注 0票数 1

我有以下标记:

代码语言:javascript
复制
<div style="height:100px; width:280px; float:left" >

<p style="float:left; padding:5px;" id="optionOne">

<label style="cursor:pointer; width:100px" id="optionLabelOne">Option 1</label>
<span style="color:red; font-size:10px"></span>

<input class="u-3" name="ageGroup" id="ageGroup" style="width:230px;" />
</p>

 </div>

我有几个这样的重复div。我选择

其中的标签如下所示:

代码语言:javascript
复制
$('#optionOne,#optionTwo,#optionThree,#optionFour').on('mouseover',function(){
 $(this).on('mouseover',function(){
  //do something here});
  });

现在,在以后的某个阶段,我需要在"p“标记上执行一个单击事件,但不包括位于其中的"input”标记。

当我使用下面的代码时,单击事件也会在输入字段上触发(很明显)

代码语言:javascript
复制
$(this).on('click',function(){
//do something
});

那么如何才能选择完整的p标记,而不需要对其中的input元素做任何操作。

我也试过这个:

代码语言:javascript
复制
$(this).not('input').on('click',function(){
 //// NOT WORKING
 });

请发表意见。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-17 16:51:19

您可以使用event对象的stopPropagation方法:

代码语言:javascript
复制
$('p input').on('click', function(event){
     event.stopPropagation()
})

请注意,不需要将处理程序绑定到this对象,因为您已经选择了所有元素:

代码语言:javascript
复制
$('#optionOne,#optionTwo,#optionThree,#optionFour').on('mouseover',function(){
    // 
});

您还可以将类添加到p标记并使用类选择器:

代码语言:javascript
复制
$('p.options').on('mouseover',function(){
    // $(this).foo()
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13429065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档