select 除了 div 和 jquery 中 div 的子元素之外的所有元素如何

how can select all element except of a div and child of divs in jquery

我想要 select 所有 HTML 元素,除了 div 和 div 的子元素用于分配事件

元素是这样的:

<span 1 id="select1"></span>
<span 2 id="select2"></span>
<span 3 id="select3"></span>
<span 4 id="select4"></span>
<span 5 id="select5"></span>
<span 6 id="select6"></span>

<!-- here is elements that i don't want select that -->
<div id="dontSelect">
<table>
    <tr>
      <td>
        don't select my element
      </td>
     </tr>
</table>
</div>
<!-- here is elements that i don't want select that -->

select怎么会这样?谢谢

我认为更简单的解决方案是将处理程序附加到文档元素,然后检查事件的目标是否在 dontSelect 元素内,如果是,则什么都不做

$(document).click(function (e) {
    if (!$(e.target).closest('#dontSelect')) {
        //do your stuff
    }
})

但如果您只想定位 span 个元素,那么

$('span:not(#dontSelect span)').click(function(){
    //your stuff
})

$(':not(#dontSelect, #dontSelect *)').click(function(){
    //your stuff
})

对于所有span元素,你可以试试,

$('span');

对于所有 ID 从 select 开始的跨度,您可以尝试

$("span[id^='select']");

任何元素,你都可以尝试

$('*').not('#dontSelect, #dontSelect *')