jquery - 如何通过 JQuery 查找和禁用按钮

标签 jquery find closest

我的 html 中有一个带有查找按钮的输入文本绑定(bind)。由于某些原因我想禁用按钮和文本框。

我尝试了以下方法,但没有成功。

var btn = $("#x_Id_armaster").closest(".ew-lookup-list").find(".ew-lookup-btn");
console.log(btn.length)
btn.attr("disabled");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row col-md-12 col-lg-12">
  <label class="col-md-3 col-lg-3 captionstyle">
        Client <i data-phrase="FieldRequiredIndicator" class="fas fa-asterisk ew-required" data-caption="FieldRequiredIndicator"></i>
    </label>
  <div class="col-md-9 col-lg-9">
    <span id="el_s_invoice_Id_armaster">
            <span></span>
    <div class="input-group ew-lookup-list">
      <div class="form-control ew-lookup-text" tabindex="-1" id="lu_x_Id_armaster">
        Please select
      </div>
      <div class="input-group-append">
        <button type="button" title="" class="ew-lookup-btn btn btn-default" onclick="ew.modalLookupShow({lnk:this,el:'x_Id_armaster',m:0,n:10});" ata-original-title="Lookup - Client"><i class="fas fa-search ew-icon"></i></button>
      </div>
    </div>
    <input type="hidden" data-table="s_invoice" data-field="x_Id_armaster" data-multiple="0" data-lookup="1" data-value-separator=", " name="x_Id_armaster" id="x_Id_armaster" value="" onchange="ew.updateOptions.call(this);">
    </span>
  </div>
</div>

最佳答案

closest正在遍历 DOM 树中的祖先,因此这就是您的代码失败的原因。

您可以将closestrow类一起使用来查找按钮。它们具有相同的层次结构,并且最接近有效。

var btn = $("#x_Id_armaster").closest(".row").find(".ew-lookup-btn");
console.log(btn.length)
btn.prop("disabled", true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<div class="row col-md-12 col-lg-12">
  <label class="col-md-3 col-lg-3 captionstyle">
              Client <i data-phrase="FieldRequiredIndicator" class="fas fa-asterisk ew-required" data-caption="FieldRequiredIndicator"></i>
       </label>
  <div class="col-md-9 col-lg-9">

    <span id="el_s_invoice_Id_armaster">
            <span></span>
    <div class="input-group ew-lookup-list">
      <div class="form-control ew-lookup-text" tabindex="-1" id="lu_x_Id_armaster">Please select</div>
      <div class="input-group-append">
        <button type="button" title="" class="ew-lookup-btn btn btn-default" onclick="ew.modalLookupShow({lnk:this,el:'x_Id_armaster',m:0,n:10});" ata-original-title="Lookup - Client"><i class="fas fa-search ew-icon"></i></button>
      </div>
    </div>

    <input type="hidden" data-table="s_invoice" data-field="x_Id_armaster" data-multiple="0" data-lookup="1" data-value-separator=", " name="x_Id_armaster" id="x_Id_armaster" value="" onchange="ew.updateOptions.call(this);">
    </span>
  </div>
</div>

关于jquery - 如何通过 JQuery 查找和禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59406519/

相关文章:

javascript - 使用Ajax读取远程文档的变量值

java - jQuery 成功函数不从 servlet 响应返回消息

jquery - 使用jquery获取附近的div子元素

jquery - 使用 jQuery 如何在还使用 .closest() 时选择一个 child ?

ruby - Nokogiri 等效于 jQuery closest() 方法,用于在树中查找第一个匹配的祖先

Javascript &lt;input&gt; 不适用于 IE 11

grep - 如何并行搜索多个文件中的某个模式并在第一次搜索后停止

c++ vectors - 使用 find(begin, end, term)

C++:查找并删除集合元素

jquery克隆div并将其附加到特定div之后