Javascript 选择元素及其内部的任何内容

Javascript 选择元素及其内部的任何内容,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有一个click事件和一个if语句,如下所示 if (!$(e.target).is("textarea.textobject, div.texteditor")) { // do stuff } 它可以工作,但问题是div如下所示。当我单击div中的span或table时,它不起作用。我已经试过了(div.texteditor>*),但不起作用 <div class="texteditor"> <span>1</span> <tab

我有一个click事件和一个if语句,如下所示

if (!$(e.target).is("textarea.textobject, div.texteditor"))
{
  // do stuff
}
它可以工作,但问题是div如下所示。当我单击div中的span或table时,它不起作用。我已经试过了(div.texteditor>*),但不起作用

<div class="texteditor">
   <span>1</span>
   <table>
      <tr><td></td></tr>
   </table>
</div>

1.

因此,基本上我希望能够选择div.texteditor并将其包含在其中。有人知道这个问题的解决办法吗?我确信我遗漏了一些东西。

如果事件处理程序位于
本身,只需使用
this
而不是
e.target
(可能是一个孩子),如下所示:

if (!$(this).is("textarea.textobject, div.texteditor"))
{
  // do stuff
}
if ($(e.target).closest("textarea.textobject, div.texteditor").length == 0)
{
  // do stuff
}
…如果要检查目标是否位于这两种选择器类型之一的任何位置,请使用和,如下所示:

if (!$(this).is("textarea.textobject, div.texteditor"))
{
  // do stuff
}
if ($(e.target).closest("textarea.textobject, div.texteditor").length == 0)
{
  // do stuff
}

因为它可以处理当前元素和父元素,所以这里非常方便。

我不知道,但是您是否尝试过创建另一个分配给div中元素的事件? 比如:

if ( $(e.target).is("span") &&  $(e.target).parent("div.texteditor") )
{
  // do stuff
}
我不知道它是否有效,但这是一个想法

我希望它能帮助你^^

如果要应用于所有子项,这可能会起作用:

if ( $(e.target).parent("div.texteditor") )
{
  // do stuff
}

如果语句正在运行,您能否显示此
语句的位置?它需要有e.target。事实上我自己可能已经解决了。这似乎奏效了。如果(!$(e.target).is(“textarea.textobject,div.textdeditor,div.textdeditor*”),它会选择div.textdeditor,然后选择div.textdeditor,其中包含任何内容。@codemonkey-如果可行,请查看上面的
.closest()
解决方案,它将更有效地完成同样的事情:)我了解它的功能,并且我尝试了您的解决方案,但在这种情况下它不起作用。这可能会起作用,但我需要一个“全包”,因为div中的元素可能会更改。