【问题标题】:How do I get a child attribute from a e.currentTarget.value JQuery如何从 e.currentTarget.value JQuery 获取子属性
【发布时间】:2025-12-23 00:20:22
【问题描述】:

我正在尝试从currentTarget 的子项中获取一个属性。我试过这个, (e.currentTarget.child.attr("data-english")

我已经用谷歌搜索了它,但没有找到任何有用的东西,也许是我的代码新手,我可能正在查找错误的东西。

这里是 HTML

 < select class="form-control" id="select_fundFamily"     name="select_fundFamily" autocomplete="off" >
  < option value="stuff" data-english="english" data-family-locallang="model" >

目前在 JQuery 中,e.currentTarget.value; 正在显示选择元素。

有人可以告诉我解决这个问题的方法吗?

【问题讨论】:

    标签: javascript jquery trouble-tickets


    【解决方案1】:

    对于select中被选选项的值,可以使用

    $(e.currentTarget).find(':selected').attr("data-english");
    

    运行下面的 sn-p 看看它是否工作

    $(document).ready(function(){
        $('select').change(function(e){
             var eng = $(e.currentTarget).find(':selected').attr("data-english");
            $('body').append(eng);
        })
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <select id="select_fundFamily"> 
        <option selected disabled>Select something</option>
        <option value="stuff1" data-english="english1" >1</option>
        <option value="stuff2" data-english="english2" >2</option>
        <option value="stuff3" data-english="english3" >3</option>
        <option value="stuff4" data-english="english4" >4</option>
        <option value="stuff5" data-english="english5" >5</option>
    </select>

    【讨论】:

      【解决方案2】:

      如果您尝试确定所选选项的属性。一个简单的解决方案是:

      var dataEnglish = $('#select_fundFamily option:selected').attr('data-english'); // dataEnglish = english
      

      【讨论】:

      • 完美!感谢您的帮助!
      • 一种更优雅的方式-如果您想确定“更改”事件何时发生-您也可以这样做: $('#select_fundFamily').on('change', function (e) { var option = $("option:selected", this); console.log(option.attr('data-english')); // 英语 });
      【解决方案3】:

      currentTarget 将响应事件侦听器触发事件​​的任何元素。在您的情况下,我认为您想使用 e.target 来定位正确的元素。

      $("select#select_fundFamily").on('click','option', function(e) {
          e.preventDefault();
          $(e.target).attr('data-english'); // you can use $(this) instead
          //something else
      });
      

      【讨论】: