jQuery过滤器不返回数据元素,只返回整个对象
jQuery filter not returning data element, only entire object
我正在尝试从<select>
中filter()
一个jQuery列表,如果文本匹配,则返回一个data
属性。匹配有效,但我没有得到数据属性中包含的字符串:我得到了整个对象
$("#company_select option").filter(function(){
var d = $(this).data("company_system_name");
if ($(this).text() === val ) { return d; };
})
为什么会发生这种情况。如何返回数据属性?
看起来您想要:
var optData = $("#company_select option").filter(function(){
return $(this).text() === val;
}).data("company_system_name");
$.fn.filter
方法返回过滤后的jQuery集合。根据您想要的内容,您可以获取第一个过滤后的元素数据或所有数据属性作为数组:
var $options = $("#company_select option").filter(function() {
return $(this).text() === val;
});
// Get the data of the first filtered option
var firstData = $options.data('company_system_name');
// Get an array of all data attributes
var allData = $options.map(function() {
return $(this).data("company_system_name");
}).get();
Filter用于根据您选择的条件减少一组匹配的元素。要真正从他们那里获得数据,你需要这样做:
var d = $("#company_select option").filter(function(){
return $(this).text() == val;
}).data('company_system_name');
尝试
var val = "a"
, _data = $.map($("#company_select option"), function(el, i) {
return $(el).text() === val
? $(el).data("company_system_name")
: null
});
console.log(_data)
var val = "a"
, _data = $.map($("#company_select option"), function(el, i) {
return $(el).text() === val
? $(el).data("company_system_name")
: null
})
console.log(_data)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="company_select">
<option data-company_system_name="a">a</option>
<option data-company_system_name="b">b</option>
<option data-company_system_name="b">b</option>
</select>
相关文章:
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 通过数组值返回对象
- JavaScript:返回对象的函数
- 为什么document.getElementsByClassName(“className”)返回对象
- 如何返回对象
- Promise没有;t返回对象的数组
- 面料:“;鼠标:向下”;在event.target中未返回对象
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- Javascript:返回对象
- 为什么 javascript 返回对象位置 true 或 false
- 解析查询查找方法返回对象而不是数组
- 来自函数的返回对象在 jQuery 中未从 $.post 定义
- JavaScript 返回对象未按预期工作
- 返回“[对象对象] NaN” - Javascript
- 何时从创建返回对象
- Javascript:接收对象并返回对象中描述的所有数字的列表的函数
- JSDoc:返回对象结构
- node.js请求返回对象
- 返回对象的ECMAScript 6箭头函数
- 如何从控制器返回对象列表并使用JQuery(SpringMVC,ajax)显示它们