提问人:user3457760 提问时间:6/11/2015 最后编辑:Henry Eckeruser3457760 更新时间:9/4/2023 访问量:9922
如何从 e.currentTarget.value JQuery 获取子属性
How do I get a child attribute from a e.currentTarget.value JQuery
问:
我正在尝试从 的子项中获取一个属性。我试过了,
(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 中,正在显示 select 元素。e.currentTarget.value;
有人可以建议我采取什么途径来解决这个问题吗?
答:
6赞
Ted
6/11/2015
#1
对于选择中所选选项的值,可以使用
$(e.currentTarget).find(':selected').attr("data-english");
运行下面的代码片段以查看其工作原理
$(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赞
adelindev
6/11/2015
#2
如果尝试确定所选选项的属性。一个简单的解决方案是:
var dataEnglish = $('#select_fundFamily option:selected').attr('data-english'); // dataEnglish = english
评论
1赞
adelindev
6/11/2015
一种更优雅的方法 - 如果你想确定当'change'事件发生时 - 你也可以像这样完成它: $('#select_fundFamily').on('change', function (e) { var option = $(“option:selected”, this); console.log(option.attr('data-english')); // 英语 });
1赞
Hien Luong
6/11/2015
#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
});
评论