Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将拆分后的整数值分配给el的某些子级?_Javascript_Jquery - Fatal编程技术网

Javascript 如何将拆分后的整数值分配给el的某些子级?

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

我有以下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 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]);
});

您的意思是更改
数据值吗?
没有值。另外更改文本?@EricNail
val()
仅用于表单控件,而不是像
@charlietfl这样的元素,如果您看到这两个
a
它们都有
数据属性
id
,还有一些数值,如
字段-1900
id=“checkbox-1900-2”
数据值=“1900”
我需要用我从var表中得到的信息来更改这些数字(本例中为1900),一个数字必须反映一个数字,一个数字来自
拆分
,另一个数字来自另一个one@charlietfl更新了问题,但没有,是的,很接近,但是我们有一些案例,比如说
field-1900
和id
id=“复选框-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]);
});