我有以下 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>
我需要更改这些值,例如。 field-1900
id="checkbox-1900-2"
data-value="1900"
以及我从 收到的值表单
在另一个页面中。在结果页面上我这样做:
<?php $myId = $_POST['myDates']; ?>
然后是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]);
}
上面的JS是一个尝试性的逻辑,基本上我知道我有2个包含我想要更改的不同值的元素,并且我知道我会得到带有2个数字的var
:var str =“1952,1991”;
如何更改这两个 a
的值以反射(reflect)我从表单获取的值?
更新
越来越近了:
var str = "<?php echo $myId; ?>";
var temp = new Array();
// this will return an array with strings "1", "2", etc.
temp = str.split(",");
temp = temp.map(Number);
$("#alm-filter-2").find("ul>:first-child a").attr("value", temp[0]);
但是我需要更改所有三种情况下的值
以及所有反射(reflect)我从表单中获得的两个值的els a
。
最佳答案
不妨先将数据分解为数组
var values = "<?php echo json_encode(explode(',',$myId)); ?>";
然后使用 each
循环遍历元素并使用它们的索引从数组中的同一索引获取每个值
$("#alm-filter-2 a[data-value]").each(function(i){
$(this).attr('data-value', values[i]))
})
关于javascript - 如何将分割后的整数值分配给 el 的某些子项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50690939/