【问题标题】:How to fetch div value with specific id using Jquery?如何使用 Jquery 获取具有特定 id 的 div 值?
【发布时间】:2020-09-05 02:30:48
【问题描述】:

我有带有添加按钮的数据列表。在按钮上单击如何使用 jquery 获取 id="rnumber" 的 div 值。我想要按钮单击上的数字。我不知道如何获得我尝试的那个号码,但每次我获得第一个列表号码时,我都想要相同班级的号码。前任。如果我单击第二个 li 按钮,我仍然会得到第一个 li 类 div 值。 我尝试使用父母和孩子选择器,但我没有得到答案。

<div class="modal-body">
    <ul class="searchresult" style="list-style-type: none;">
        <li>
            <div  class="kt-font-lg">AKash</div>
            <div  class="kt-font-lg rnumber" >1234567890</div>
            <button  class="kt-font-lg btn-primary " onclick="addNumber()">Add</button>
        </li>
        <li>
            <div  class="kt-font-lg">Deep</div>
            <div  class="kt-font-lg rnumber" >9012345678</div>
            <button  class="kt-font-lg btn-primary " onclick="addNumber()">Add</button>
        </li>
    </ul>
</div>

点击功能

function addNumber(){
                rnumber = $('#rnumber');
                var  ttt = rnumber.text();
                console.log(ttt);        
             }

【问题讨论】:

  • 能否贴出点击事件的代码
  • 你的意思是说,你可以使用这样的东西,对吧? $("#rnumber")?
  • 您的 HTML 无效,您有 2 个 &lt;div&gt;s 具有相同的 id 属性。
  • @MilindAnantwar 我更新了我的问题,请再次查看
  • @Meet 我已经回答并解决了您的问题。请检查我的答案。

标签: javascript jquery jquery-selectors parent-child parent-selector


【解决方案1】:

您必须保持您的 ID 唯一。复制 ID 是一种犯罪行为。 请将其改为 class。由于多个元素共享相同的功能,请使用event.targetthis。你可以使用这样的东西:

function addNumber() {
  console.log($(event.target).prev().text());
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="modal-body">
  <ul class="searchresult" style="list-style-type: none;">
    <li>
      <div class="kt-font-lg">AKash</div>
      <div class="kt-font-lg rnumber">1234567890</div>
      <button class="kt-font-lg btn-primary" onclick="addNumber()">Add</button>
    </li>
    <li>
      <div class="kt-font-lg">Deep</div>
      <div class="kt-font-lg rnumber">9012345678</div>
      <button class="kt-font-lg btn-primary" onclick="addNumber()">Add</button>
    </li>
  </ul>
</div>

以一种更好的方式,使用不显眼的 JavaScript 事件处理:

$(function () {
  $(".btn-primary").click(function () {
    console.log($(this).prev().text());
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="modal-body">
  <ul class="searchresult" style="list-style-type: none;">
    <li>
      <div class="kt-font-lg">AKash</div>
      <div class="kt-font-lg rnumber">1234567890</div>
      <button class="kt-font-lg btn-primary">Add</button>
    </li>
    <li>
      <div class="kt-font-lg">Deep</div>
      <div class="kt-font-lg rnumber">9012345678</div>
      <button class="kt-font-lg btn-primary">Add</button>
    </li>
  </ul>
</div>

【讨论】:

    【解决方案2】:

    请注意,您有 invalid HTML 通过在两个 &lt;div&gt;s 上使用相同的 Id 属性值,我将其更改为类属性,这是一个使用 .prev() 方法和还要注意我是如何将元素传递给事件处理程序的:

    function addNumber(el){
      const text = $(el).prev().text();
      console.log(text);
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="modal-body">
        <ul class="searchresult" style="list-style-type: none;">
            <li>
                <div  class="kt-font-lg">AKash</div>
                <div  class="kt-font-lg " class="rnumber">1234567890</div>
                <button  class="kt-font-lg btn-primary " onclick="addNumber(this)">Add</button>
            </li>
            <li>
                <div  class="kt-font-lg">Deep</div>
                <div  class="kt-font-lg " class="rnumber">9012345678</div>
                <button  class="kt-font-lg btn-primary " onclick="addNumber(this)">Add</button>
            </li>
        </ul>
    </div>

    【讨论】:

      【解决方案3】:

      $(".click-number").click(function(){
        var rnumber = $(this).data('rnumber');
        console.log(rnumber);
      });
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <div class="modal-body">
          <ul class="searchresult" style="list-style-type: none;">
              <li>
                  <div  class="kt-font-lg">AKash</div>
                  <div  class="kt-font-lg ">1234567890</div>
       <button  class="kt-font-lg btn-primary click-number" data-rnumber="1234567890">Add</button>
              </li>
              <li>
                  <div  class="kt-font-lg">Deep</div>
                  <div  class="kt-font-lg ">9012345678</div>
       <button  class="kt-font-lg btn-primary click-number" data-rnumber="9012345678">Add</button>
              </li>
          </ul>
      </div>

      你不能用两个 div 元素设置相同的 id 类点击数是最简单的方法。将数字作为 data-rnumber 并在 jquery 中获取。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多