简体   繁体   English

如何从jquery中的数组中获取和呈现与选定值相关的数据?

[英]how to get and render selected values related data from array in jquery?

I have no expertise in javascript but I want to render this data which is showing in my console.log below我没有 javascript 方面的专业知识,但我想呈现显示在下面我的console.log中的数据

大批

在此处输入图片说明

How can I make forloop or something like that to render this data in my html input?我如何制作forloop或类似的东西来在我的 html 输入中呈现这些数据?

create.html

<div class="col-sm-2">
    <div class="form-group">
        <label>Expected Values</label>
        <input type="text" class="form-control" value="{{vital.expected_values}}" readonly>
    </div>
</div>
<div class="col-sm-2">
    <div class="form-group">
        <label>Price</label>
        <input type="text" class="form-control" value="{{vital.price}}" readonly>
    </div>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        $("#id_vitals").change(function () {
            var vitals = $(this).val();
            $.ajax({
                url: $('#personForm').data('url'),
                data: { 'vital_id': vitals },
                success: function (response) {
                    console.log(response[vitals['name']])
                }
            });
        });
    })
</script>

I would do it somehow like that:我会这样做:

// Your data
let dataArray = [{data: 1, otherData: 2, elseData: 3}]
// The element, where you want to show it
let targetElement = document.getElementById('your-targer-id');
// The container element for elements
let newContainer = document.createElement('ul');

// Pure JS loop, easy to understand what is happening
// But you can also do it with .map();
for (let i = 0; i < dataArray.length; i++) {
  // Add every line
  newContainer.innerHTML+='<li>' + dataArray[i].data + '</li>'; 
  // Or other things, depending how you want to show the data
  newContainer.innerHTML+='<li> data value is: ' + dataArray[i].data + ' and otherData value is: ' + dataArray[i].otherData + '</li>'; //etc
}

// Append created list in target element
targetElement.appendChild(newContainer);

EDIT - now I see, that you want to display multiple values in text input, rather like so:编辑 - 现在我明白了,你想在文本输入中显示多个值,就像这样:

let dataArray = [...your-data-array]
let targetElement = document.getElementById('target-input');

for (let i = 0; i < dataArray.lenght; i++) {
  // loop throug elements and add it to value attribute of input, separated by coma.
  targetElement.value+=dataArray[i].expected_values + ', ';
}

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

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