javascript - 如何将分割后的整数值分配给 el 的某些子项?

标签 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 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/

相关文章:

jquery - 检查选择标签的选定值的变化

javascript - Windows 8 JS 应用程序中的 jQuery

javascript - 输入值正在被清空

javascript - 如何使用淡入/缓入/或任何动画来平滑显示我的 HTML、CSS 和 JS 导航菜单?

javascript - CSS 在类切换上添加删除边框

JQuery UI 按钮在 IE 中触发 "potentially dangerous Request.Form value"错误

javascript - 带有 Angular 元素的 jQuery .on

javascript - 使用 jquery 禁用除当前按钮之外的所有先前创建的按钮

javascript - ui.router 改变状态,但 ui-view 不显示任何内容?

javascript - 创建 3 个额外组件来渲染组件信息