Jquery foreach将name属性设置为value

时间:2014-09-22 03:15:53

标签: javascript jquery

我正在使用plugin来为我的<select>元素提供由jquery加载的图像。问题是,名称没有转移到新代码,因此无法提交围绕它的表单。新代码如下:

<div id="itemselect1" name="item1" class="dd-container">
    <div class="dd-select">
        <input class="dd-selected-value" value="Apple" type="hidden">
    </div>
</div>

<div id="itemselect2" name="item2" class="dd-container">
    <div class="dd-select">
        <input class="dd-selected-value" value="Orange" type="hidden">
    </div>
</div>  // the list continues

所以我尝试了这种方法来转移名称:

var list = {
  "itemselect1": "item1",
  "itemselect2": "item2",
  "itemselect3": "item3",
  "itemselect4": "item4",
  "itemselect5": "item5",
  "itemselect6": "item6"
};
$.each( list, function( key, value ) {
  $("#"+ key).children().children("input.dd-selected-value").attr("name", value );
});

虽然它还没有用。 <input>元素没有名称。有想法该怎么解决这个吗?谢谢!

修改:我添加了一些更改以帮助诊断问题

$.each( list, function( key, value ) {
  $("#"+ key).children().children("input.dd-selected-value").attr("name", value );
  console.log(key);
  console.log(value);
  console.log($("div#"+ key).attr("name"));
});

控制台说的是什么:

itemselect1 (index):30
item1 (index):31
undefined (index):32
itemselect2 (index):30
item2 (index):31
undefined (index):32

我在插件jquery文件的末尾以及<script>文件中的index标记中尝试过此操作。它显然没有找到这个名字。我要继续挖掘......

1 个答案:

答案 0 :(得分:0)

尝试for in

for (var key in list){
  $("#"+ key).children().children("input.dd-selected-value").attr("name", list[key] );
}