JQUERY:将div ID和checked值存储到多维数组中

时间:2015-05-31 07:49:48

标签: javascript jquery arrays

我想将div ID和checked值存储到数组中。

FIDDLE

假设我从品牌检查 samsung lenovo 来自Ram的 4gb ,数组应该是:
array [] = [“brands”=> “三星,联想”,“ram”=> “4GB”]

HTML

 <div id="brand">
<input type="checkbox" class="chkbx" value="Samsung">Samsung<br>
<input type="checkbox" class="chkbx" value="Nikon">Nikon<br>
<input type="checkbox" class="chkbx" value="Lenovo">Lenovo<br>
<input type="checkbox" class="chkbx" value="Alcatel">Alcatel<br>
 </div>

<div id="ram">
<input type="checkbox" class="chkbx" value="2 GB">2 GB<br>
<input type="checkbox" class="chkbx" value="3 GB">3 GB<br>
<input type="checkbox" class="chkbx" value="5 GB">5 GB<br>
<input type="checkbox" class="chkbx" value="6 GB">6 GB<br>
</div>

从服务器动态抓取div。这只是一个例子,有多个div,并且它们的ID是未知的。
任何帮助表示赞赏。
提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试使用具有与元素Object相同属性的id,将与元素id具有相同名称的属性设置为选定的input

&#13;
&#13;
var res = {
  "brand": "",
  "ram": ""
};
$("#brand, #ram").on("change", function(e) {
  var val = e.target.value;
  // if `e.target.value` `val` begins with character `a-z` , case insensitive
  // set `brand` property of `res` with `val` , 
  // else set `ram` property with `val`
  res[/^[a-z]/i.test(val) ? "brand" : "ram"] = e.target.value;
  console.log(res);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div id="brand">
  <input type="checkbox" class="chkbx" value="Samsung">Samsung
  <br>
  <input type="checkbox" class="chkbx" value="Nikon">Nikon
  <br>
  <input type="checkbox" class="chkbx" value="Lenovo">Lenovo
  <br>
  <input type="checkbox" class="chkbx" value="Alcatel">Alcatel
  <br>
</div>

<div id="ram">
  <input type="checkbox" class="chkbx" value="2 GB">2 GB
  <br>
  <input type="checkbox" class="chkbx" value="3 GB">3 GB
  <br>
  <input type="checkbox" class="chkbx" value="5 GB">5 GB
  <br>
  <input type="checkbox" class="chkbx" value="6 GB">6 GB
  <br>
</div>
&#13;
&#13;
&#13;