JQuery-执行“ find()”,排除某些元素及其后代

问题描述 投票:0回答:1

问题:

执行“ find()”,排除某些元素及其后代。

实际情况:

代码示例

下面代码的目的是尝试选择$("#lbr_placehld")中的所有元素,但排除所有具有lbr_mval_placehld属性及其后代的元素。

$("#lbr_placehld").find(":not([lbr_mval_placehld])");

HTML示例

<span id="lbr_placehld" lbr_mval_placehld="" lbr_mval_phld_grp_path="mg_bases_n_forms#1">
  <div class="form-group">
    <label class="col-xs-2 control-label no-padding-right" for="for_str_nm_base">Nome da Base</label>
    <div class="col-xs-10">
      <div class="clearfix">
        <input lbr_mval_fld_nm="str_id_base" name="mg_bases_n_forms#1.str_id_base" type="hidden">
        <input class="col-xs-5" lbr_invalidat_msg="" lbr_mval_fld_fdly_nm="Nome da Base" lbr_mval_fld_nm="str_nm_base" name="mg_bases_n_forms#1.str_nm_base" type="text" autocomplete="off" lbr_fdly_nm="Nome da Base 2">
        <a href="#" title="Remover este item" class="lbr-tooltip" lbr_mval_op="rmthis" onclick="lbrad_MultivaluedManipulate(this);return false;">
        <i class="fa fa-remove red field-border-icon"></i>
        </a>
        <div lbr_mval_container="" class="widget-box transparent">
          <div class="widget-header widget-header-small">
            <h6 class="smaller"></h6>
            <div class="widget-toolbar">
              <a href="#" title="Remover último item" class="lbr-tooltip" lbr_mval_op="rmlast" onclick="lbrad_MultivaluedManipulate(this);return false;" style="display: inline;">
              <i class="fa fa-remove red border-icon"></i>
              </a>
              <a href="#" class="lbr-tooltip" lbr_mval_op="add" onclick="lbrad_MultivaluedManipulate(this);return false;" title="Adicionar item">
              <i class="fa fa-plus blue border-icon"></i>
              </a>
              <a href="#" title="Remover todos itens" class="lbr-tooltip" lbr_mval_op="rmall" onclick="lbrad_MultivaluedManipulate(this);return false;" style="display:none;">
              <i class="fa fa-remove red border-icon"></i>
              </a>
            </div>
          </div>
          <div class="widget-body">
            <div class="widget-main">
              <span lbr_mval_grp_path="mg_forms" lbr_mval_last_idx="3">
                <div class="form-group">
                  <label class="col-xs-2 control-label no-padding-right" for="for_str_nm_base">Nome do Form</label>
                  <div class="col-xs-10">
                    <div class="clearfix">
                      <input lbr_mval_fld_nm="str_id_form" name="mg_bases_n_forms#1.str_id_form" type="hidden">
                      <input class="col-xs-5" lbr_invalidat_msg="" lbr_mval_fld_fdly_nm="Nome do Form" lbr_mval_fld_nm="str_nm_form" name="mg_bases_n_forms#1.str_nm_form" type="text" autocomplete="off" lbr_fdly_nm="Nome do Form 2">
                      <a href="#" title="Remover este item" class="lbr-tooltip" lbr_mval_op="rmthis" onclick="lbrad_MultivaluedManipulate(this);return false;">
                      <i class="fa fa-remove red field-border-icon"></i>
                      </a>
                    </div>
                  </div>
                </div>
                <hr>
              </span>
              <span lbr_mval_placehld="" lbr_mval_phld_grp_path="mg_forms#0">
                <div class="form-group">
                  <label class="col-xs-2 control-label no-padding-right" for="for_str_nm_base">Nome do Form</label>
                  <div class="col-xs-10">
                    <div class="clearfix">
                      <input lbr_mval_fld_nm="str_id_form" name="mg_forms#0.str_id_form" type="hidden">
                      <input class="col-xs-5" lbr_invalidat_msg="" lbr_mval_fld_fdly_nm="Nome do Form" lbr_mval_fld_nm="str_nm_form" name="mg_forms#0.str_nm_form" type="text" autocomplete="off" lbr_fdly_nm="Nome do Form 1">
                      <a href="#" title="Remover este item" class="lbr-tooltip" lbr_mval_op="rmthis" onclick="lbrad_MultivaluedManipulate(this);return false;">
                      <i class="fa fa-remove red field-border-icon"></i>
                      </a>
                    </div>
                  </div>
                </div>
                <hr>
              </span>
              <span lbr_mval_placehld="" lbr_mval_phld_grp_path="mg_forms#1">
                <div class="form-group">
                  <label class="col-xs-2 control-label no-padding-right" for="for_str_nm_base">Nome do Form</label>
                  <div class="col-xs-10">
                    <div class="clearfix">
                      <input lbr_mval_fld_nm="str_id_form" name="mg_forms#1.str_id_form" type="hidden">
                      <input class="col-xs-5" lbr_invalidat_msg="" lbr_mval_fld_fdly_nm="Nome do Form" lbr_mval_fld_nm="str_nm_form" name="mg_forms#1.str_nm_form" type="text" autocomplete="off" lbr_fdly_nm="Nome do Form 2">
                      <a href="#" title="Remover este item" class="lbr-tooltip" lbr_mval_op="rmthis" onclick="lbrad_MultivaluedManipulate(this);return false;">
                      <i class="fa fa-remove red field-border-icon"></i>
                      </a>
                    </div>
                  </div>
                </div>
                <hr>
              </span>
              <span lbr_mval_placehld="" lbr_mval_phld_grp_path="mg_forms#2">
                <div class="form-group">
                  <label class="col-xs-2 control-label no-padding-right" for="for_str_nm_base">Nome do Form</label>
                  <div class="col-xs-10">
                    <div class="clearfix">
                      <input lbr_mval_fld_nm="str_id_form" name="mg_forms#2.str_id_form" type="hidden">
                      <input class="col-xs-5" lbr_invalidat_msg="" lbr_mval_fld_fdly_nm="Nome do Form" lbr_mval_fld_nm="str_nm_form" name="mg_forms#2.str_nm_form" type="text" autocomplete="off" lbr_fdly_nm="Nome do Form 3">
                      <a href="#" title="Remover este item" class="lbr-tooltip" lbr_mval_op="rmthis" onclick="lbrad_MultivaluedManipulate(this);return false;">
                      <i class="fa fa-remove red field-border-icon"></i>
                      </a>
                    </div>
                  </div>
                </div>
                <hr>
              </span>
              <span lbr_mval_placehld="" lbr_mval_phld_grp_path="mg_forms#3">
                <div class="form-group">
                  <label class="col-xs-2 control-label no-padding-right" for="for_str_nm_base">Nome do Form</label>
                  <div class="col-xs-10">
                    <div class="clearfix">
                      <input lbr_mval_fld_nm="str_id_form" name="mg_forms#3.str_id_form" type="hidden">
                      <input class="col-xs-5" lbr_invalidat_msg="" lbr_mval_fld_fdly_nm="Nome do Form" lbr_mval_fld_nm="str_nm_form" name="mg_forms#3.str_nm_form" type="text" autocomplete="off" lbr_fdly_nm="Nome do Form 4">
                      <a href="#" title="Remover este item" class="lbr-tooltip" lbr_mval_op="rmthis" onclick="lbrad_MultivaluedManipulate(this);return false;">
                      <i class="fa fa-remove red field-border-icon"></i>
                      </a>
                    </div>
                  </div>
                </div>
                <hr>
              </span>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <hr>
</span>
javascript jquery html dom
1个回答
0
投票
var $topElement = $("#lbr_placehld");

   // find every nested element
$topElement.find('*')
   // filter out any element that has the attribute,
   // or is a descendant of an element that has the attribute.
   // EXCLUDE the top element from the attribute check
   .filter(function(){
       return $(this).closest('[lbr_mval_placehld]').not($topElement).length === 0;
   });
© www.soinside.com 2019 - 2024. All rights reserved.