Javascript 如何将html5数据属性(位于选择列表中)中的数据获取到数组中?
我基本上必须使用表单加载上传一些数据,以便在页面上的javascript操作中使用。我上传的数据如下:Javascript 如何将html5数据属性(位于选择列表中)中的数据获取到数组中?,javascript,jquery,html5-data,Javascript,Jquery,Html5 Data,我基本上必须使用表单加载上传一些数据,以便在页面上的javascript操作中使用。我上传的数据如下: <select id="allrecords"> <option data-s-type="X" data-n-type="9" value="xxx">xxx</option> <option data-s-type="X" data-n-type="9" value="lmn">lmn</option> <option
<select id="allrecords">
<option data-s-type="X" data-n-type="9" value="xxx">xxx</option>
<option data-s-type="X" data-n-type="9" value="lmn">lmn</option>
<option data-s-type="X" data-n-type="8" value="xyz">xyz</option>
<option data-s-type="Y" data-n-type="3" value="zzz">zzz</option>
...
</select>
xxx
lmn
xyz
zzz
...
根据这些数据,data-s-type和data-n-type属性用于确定哪些值将添加到数组中,该数组稍后将在程序中使用。我想不出使用此选择列表获取该数组的方法
e、 g.当data-s-type=“X”和data-n-type=9时,数组=[xxx,lmn]
如果您有更好的建议,我不必以隐藏选择列表的形式上载数据。请让我知道。
$.map
创建数组,在函数中检查所需的值,如果它们匹配,则将元素值返回数组,如下所示:
var arr = $.map($('#allrecords option'), function(el,i) {
if ($(el).data('s-type') == 'X' && $(el).data('n-type') == '9')
return el.value;
});
arr //is now ['xxx', 'lmn']
$.map
创建数组,在函数中检查所需的值,如果它们匹配,则将元素值返回数组,如下所示:
var arr = $.map($('#allrecords option'), function(el,i) {
if ($(el).data('s-type') == 'X' && $(el).data('n-type') == '9')
return el.value;
});
arr //is now ['xxx', 'lmn']
它是否缺少一个
多个属性?它是否缺少一个多个属性?thx,这是有效的。但如果我不想使用select选项来存储数据呢?我在散列中有键值对。我如何将它们放在一个DIV元素中,然后根据键值获得某个值?@rajeev-您可以使用$.map创建基于几乎任何内容的数组,所以这应该不是问题。对于散列,您可能需要以某种方式获取这些散列,并使用$.map函数中的某些内容对其进行过滤,但是在没有看到代码的情况下,很难回答“什么”和“如何”问题,您可能最好提出一个关于这一点的新问题,并使用一些代码等。thx,这是可行的。但如果我不想使用select选项来存储数据呢?我在散列中有键值对。我如何将它们放在一个DIV元素中,然后根据键值获得某个值?@rajeev-您可以使用$.map创建基于几乎任何内容的数组,所以这应该不是问题。对于散列,您可能需要以某种方式获取这些散列,并使用$.map函数中的某些内容对其进行过滤,但是在没有看到代码的情况下很难回答“什么”和“如何”,您可能最好通过询问一个与此相关的新问题,以及一些代码等。