繁体   English   中英

动态分配属性名称给对象

[英]Dynamically assign property name to object

基本上在下面的代码中有一个for循环,它包含10个元素,当我单击按钮时,它会console.log记录以下内容:

当前console.log:

Object {objectProperty: "0"} Object {objectProperty: "1"} Object {objectProperty: "2"} Object {objectProperty: "3"} Object {objectProperty: "4"} Object {objectProperty: "5"} Object {objectProperty: "6"} Object {objectProperty: "7"} Object {objectProperty: "8"} Object {objectProperty: "9"}

但是我希望对象属性名称是<span>的值,因此当我遍历元素时,它将分配一个新的属性名称,该名称将与<span>值相同。

因此,如果console.log运行正常,则应如下所示:

Object {0: "0"} Object {1: "1"} Object {2: "2"} Object {3: "3"} Object {4: "4"} Object {5: "5"} Object {6: "6"} Object {7: "7"} Object {8: "8"} Object {9: "9"}

到目前为止,我有:

  $(document).on('change', "select[id*='checkBox']", function(e) { // Disable or Enable input fields if (($("option:selected", this).text() === "No")) { $(this).next().next().attr('readonly', true).addClass('input-disabled'); } else { $(this).next().next().attr('readonly', false).removeClass('input-disabled'); } }); $(document).on('click', "#generateButton", function(e) { // Define associative arrays that will compose licence object var Signed = new Object(); var NotSigned = new Object(); var Licence = new Object(); // On generate button click, get all values to dynamically create signed and unsigned values $('.list-group-item').each(function(key, value) { var objectProperty = $(this)[0].children[1].innerHTML; Signed.objectProperty = $(this)[0].children[2].value; console.log(Signed); }); }); // Append list-groups on page so that configuration elements can be appended $("#optionalFieldsRow").children().find('.panel-body').append("<div class='row'><div class='col-sm-6 left'><ul class='list-group'></ul></div><div class='col-sm-6 right'><ul class='list-group'></ul></div></div>"); // Loop through configuration items and display element on page for (var i = 0; i < 10; i++) { $("#optionalFieldsRow").children().find('.left').find('.list-group').append("<li class='list-group-item'><select id='checkBox" + i + "' class='optionalFieldsRowCheckBox' name='checkBox" + i + "'><option>Yes</option><option>No</option></select><span class='optionalLabel'>" + i + "</span><input id='input" + i + "' type='text' value='" + i + "' name='input" + i + "'></li>"); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id="page-wrapper"> <div class="row"> <div class="col-lg-12"> <ul class="list-group"> <!-- /.panel-body --> <div class="pull-right"> <button name="Save configuration button" id="generateButton" class="btn btn-primary">Generate .properties</button> <!--<button name="Save configuration button" onclick="GenerateLicence(this);" id="generateButton" class="btn btn-primary">Generate .properties</button>--> </div> </ul> </div> <!-- /.col-lg-12 --> </div> <div id="optionalFieldsRow" class="row"> <div class="col-lg-12"> <div class="panel panel-default"> <!-- /.panel-heading --> <div class="panel-body"> <!-- Optional fields for licences --> <div class="row"> <!-- /.row --> </div> </div> <!-- /.panel --> </div> <!-- /.col-lg-8 --> </div> <!-- /.row --> </div> <!-- /#page-wrapper --> </div> 

var obj = {};
obj["<new property name>"] = <new property value>;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM