使用.not过滤jquery选择

时间:2011-01-10 23:25:36

标签: jquery jquery-selectors

这是我的HTML。

  <code>
    <div id="expfield0">

<div class="formrow">
<div class="formlabel"><label for="Memberresumeexp_Company Name">Company  Name</label> </div>
<div class="formtextfield">
<input size="30" maxlength="128" name="Memberresumeexp[0][companyname]" id="Memberresumeexp_0_companyname" type="text" value="" /> 
<span class="error"> </span>

</div>
</div>


<div class="formrow">
<div class="formlabel"><label for="Memberresumeexp_Title">Title</label> </div>
<div class="formtextfield">
<input size="30" maxlength="128" name="Memberresumeexp[0][title]" id="Memberresumeexp_0_title" type="text" value="" /> 
<span class="error"> </span>
</div>
</div>

<div class="formrow">

<div class="formlabel"><label for="Memberresumeexp_Description">Description</label> </div>
<div class="formtextfield">
<textarea name="Memberresumeexp[0][descr]" rows="8" cols="60"></textarea>
</div>


</div> <!-- end expfield0 -->
    <code>

在jquery中,我试图选择div expfield0的内容,然后从选择中删除textarea。它不起作用。这是jquery片段。

<code>$('#expfield0').not('textarea[name=Memberresumeexp\\[0\\]\\[descr\\]').html()<code>

我在这里做错了什么。

1 个答案:

答案 0 :(得分:3)

您选择#expfield0本身,而不是其子女,因此您无法从选择中排除特定的孩子。

如果你真的想要删除textarea的#expfield0的HTML,你可以做这样的事情,处理元素的副本,而不是原始的副本:

$('#expfield0')
    .clone()
    .find('textarea')
        .remove()
    .end()
    .html();