Javascript 如何将拆分后的整数值分配给el的某些子级?
我有以下html:Javascript 如何将拆分后的整数值分配给el的某些子级?,javascript,jquery,Javascript,Jquery,我有以下html: <div class="alm-filter alm-filter--meta" id="alm-filter-1" data-key="meta" data-fieldtype="checkbox" data-meta-key="Cate" data-meta-compare="IN" data-meta-type="CHAR"> <ul> <li class="alm-filter--checkbox"><a hr
<div class="alm-filter alm-filter--meta" id="alm-filter-1" data-key="meta" data-fieldtype="checkbox" data-meta-key="Cate" data-meta-compare="IN" data-meta-type="CHAR">
<ul>
<li class="alm-filter--checkbox"><a href="javascript:void(0);" class="alm-filter--link field-checkbox field-other" id="checkbox-other-1" data-type="checkbox" data-value="other">Other</a></li>
<li class="alm-filter--checkbox"><a href="javascript:void(0);" class="alm-filter--link field-checkbox field-painting active" id="checkbox-painting-1" data-type="checkbox" data-value="painting">Painting</a></li>
</ul>
</div>
<div class="alm-filter alm-filter--meta" id="alm-filter-2" data-key="meta" data-fieldtype="checkbox" data-meta-key="usp-custom-14" data-meta-compare="BETWEEN" data-meta-type="NUMERIC">
<ul>
<li class="alm-filter--checkbox"><a href="javascript:void(0);" class="alm-filter--link field-checkbox field-1900 active" id="checkbox-1900-2" data-type="checkbox" data-value="1900">1900</a></li>
<li class="alm-filter--checkbox"><a href="javascript:void(0);" class="alm-filter--link field-checkbox field-1920" id="checkbox-1920-2" data-type="checkbox" data-value="1920">1920</a></li>
</ul>
</div>
然后是js:
var str = "<?php echo $myId; ?>";
var temp = new Array();
// this will return an array with strings "1", "2", etc.
temp = str.split(",");
for (a in temp ) {
temp[a] = parseInt(temp[a], 10); // Explicitly include base
$("#alm-filter-2").find("a").attr("value", temp[a]);
}
但我需要更改所有三种情况下的
值,以及所有反映我从表单中获得的两个值的els a
。不妨先将数据分解为数组
var values = "<?php echo json_encode(explode(',',$myId)); ?>";
这就是我决定参与@charlietfl回答的原因
在后端,我将1900设置为默认值,然后进行更改:
var str = "<?php echo $myId; ?>";
var values = new Array();
values = str.split(",");
values = values.map(Number);
$("#alm-filter-2 a[data-value]").each(function(i){
$(this).attr('data-value', values[i]);
$(this).attr('id', function(_, currentID) {
return currentID.replace('1900', values[i]);
});
$(this).attr('class', function(_, currentClass) {
return currentClass.replace('1900', values[i]);
});
$(this).html(values[i]);
});
var-str=”“;
var值=新数组();
值=str.split(“,”);
值=值。映射(数字);
$(“#alm-filter-2A[数据值]”)。每个(函数(i){
$(this.attr('data-value',value[i]);
$(this).attr('id',函数(\ux,currentID){
返回currentID.replace('1900',值[i]);
});
$(this).attr('class',function(\ux,currentClass){
返回currentClass.replace('1900',值[i]);
});
$(this.html(值[i]);
});
您的意思是更改数据值吗?
没有值。另外更改文本?@EricNailval()
仅用于表单控件,而不是像
@charlietfl这样的元素,如果您看到这两个a
它们都有类
,数据属性
和id
,还有一些数值,如字段-1900
id=“checkbox-1900-2”
数据值=“1900”
我需要用我从var表中得到的信息来更改这些数字(本例中为1900),一个数字必须反映一个数字,一个数字来自拆分
,另一个数字来自另一个one@charlietfl更新了问题,但没有,是的,很接近,但是我们有一些案例,比如说field-1900
和idid=“复选框-1900-2“
其中包含字符串字段-
和复选框--2
,我们需要替换其中的数字1900
服务器端数据中有哪些可以用于与元素匹配的数据?恐怕没有什么。。我必须将这些值设置为temp,然后通过DOM on document ready从该php变量中获取值来更改它们,因此需要字符串替换,但是我们如何才能在这些字符串中获得该数字?其他表单中的名称不是有帮助吗?你没有表现出足够的能力与Nope建立关系。。它们不相关,我只使用表单发送这些值,但实际上。。因为1900
和1920
是默认数字。。我可以做一个字符串搜索
,然后像查找1900
那样替换它,然后用值[I]
替换它,这就是逻辑,但是如何?哈
var values = "<?php echo json_encode(explode(',',$myId)); ?>";
$("#alm-filter-2 a[data-value]").each(function(i){
$(this).attr('data-value', values[i]))
})
var str = "<?php echo $myId; ?>";
var values = new Array();
values = str.split(",");
values = values.map(Number);
$("#alm-filter-2 a[data-value]").each(function(i){
$(this).attr('data-value', values[i]);
$(this).attr('id', function(_, currentID) {
return currentID.replace('1900', values[i]);
});
$(this).attr('class', function(_, currentClass) {
return currentClass.replace('1900', values[i]);
});
$(this).html(values[i]);
});