【问题标题】:How to pass data from jquery to html?如何将数据从jquery传递到html?
【发布时间】:2020-02-23 08:56:28
【问题描述】:

现在我有一个单独的脚本,它使用 jquery 从 api 调用数据

 function sendRequest() {

        $.ajax({
            url: "http://localhost:3002/api/people",
            type: "get", //send it through get method
            data: { 
                filters
            },
            success: function(response) {

               console.log("Response :" , response)
              //Do Something    
            },
            error: function(xhr) {
              //Do Something to handle error
            }
          });
    }

现在我有了正在调用脚本的 html

 <div class="item col-lg-4 grid-group-item list-group-item mh-animate">
                              <div class="vehicle-wrap">
                                <div class="v-image">
                                  <div class="v-special"><i class="fas fa-star"></i> Special</div>
                                  <img class="group list-group-image img-fluid" src="" alt="" />
                                </div>
                                <div class="v-info">
                                  <h4 class="list-group-item-heading"><a href=""> 2019 Ford F-150 XLT </a></h4>
                                  <div class="v-info-details">
                                    <div class="v-details">

                                      <ul>
                                        <li><strong>Body Style: </strong></li>
                                        <li><strong>Model Code: </strong></li>
                                        <li><strong>Engine: </strong></li>
                                        <li><strong>Drive Type: </strong></li>
                                        <li><strong>Transmission: </strong></li>
                                        <li><strong>Ext. Color: </strong></li>
                                        <li><strong>Int. Color: </strong></li>
                                        <li><strong>MPG: </strong>19&nbsp;City&nbsp;/&nbsp;25&nbsp;Hwy</li>
                                        <li class="vinDisplay"><strong>VIN #: </strong><span></span></li>
                                        <li><strong>Stock #: </strong></li>
                                        </li>
                                      </ul>

                                    </div>

我什至可以在页面加载时记录数据

https://imgur.com/a/EQzDsMv

现在我将如何将这些数据从请求绘制到 html ?我需要像 Nunjucks 这样的模板引擎吗?因为我习惯了 angular 和其他框架我只是使用 jquery 的新手。有什么想法吗?

【问题讨论】:

  • 使用.html() 或.append() 将满足您的需求。
  • 你能发一个例子吗?基于html
  • > cause I am use to angular and other Frameworks I am just new on using jquery。这有点奇怪。恕我直言,jquery 已过时。是的,可以使用nunjucks,但是没有办法进行数据绑定。
  • 因为应用程序都是后端只呈现应用程序的一页,需要SPA\

标签: javascript jquery ajax binding nunjucks


【解决方案1】:

据我所知,您问的是如何使用 jQuery 编辑 HTML。

如果是这样,那么你可以使用

$("#elementIdGoesHere").html(dataGoesHere)

如果您按 ID 和选择

$(".elementClassGoesHere").html(dataGoesHere)

如果您按班级名称选择。

【讨论】:

  • 你能发布一个例子吗,先生,jsut 对 jquery 几乎不陌生
  • 不编辑,我的意思是要加载对html的响应
  • 我提供的代码基本上会改变HTML的内容。所以,假设 HTML 是一个 HTML p 标签,它没有内容(开始和结束标签之间没有任何内容)。然后编写以下代码: $("p").html("Some random data..") 如果是这样,p 标签的内容将变为字符串,因此将显示“Some random data..”字样
【解决方案2】:

$(function() {
  var ajaxJsonData = [{
      name: 'a',
      value: 'value1'
    },
    {
      name: 'b',
      value: 'value2'
    },
    {
      name: 'c',
      value: 'value3'
    }
  ];

  //var temp = '';
  //for (var i = 0; i < ajaxJsonData.length; i++) {
  //temp += '<div>name: ' + ajaxJsonData[i].name + ',value: ' +      //ajaxJsonData[i].value + '</div>';
  //}

  var value = 'value';
  var $temp = `
  <div class="item col-lg-4 grid-group-item list-group-item mh-animate">
                              <div class="vehicle-wrap">
                                <div class="v-image">
                                  <div class="v-special"><i class="fas fa-star"></i> Special</div>
                                  <img class="group list-group-image img-fluid" src="" alt="" />
                                </div>
                                <div class="v-info">
                                  <h4 class="list-group-item-heading"><a href=""> 2019 Ford F-150 XLT </a></h4>
                                  <div class="v-info-details">
                                    <div class="v-details">

                                      <ul>
                                        <li><strong>Body Style: ${value} </strong></li>
                                        <li><strong>Model Code: </strong></li>
                                        <li><strong>Engine: </strong></li>
                                        <li><strong>Drive Type: </strong></li>
                                        <li><strong>Transmission: </strong></li>
                                        <li><strong>Ext. Color: </strong></li>
                                        <li><strong>Int. Color: </strong></li>
                                        <li><strong>MPG: </strong>19&nbsp;City&nbsp;/&nbsp;25&nbsp;Hwy</li>
                                        <li class="vinDisplay"><strong>VIN #: </strong><span></span></li>
                                        <li><strong>Stock #: </strong></li>
                                        </li>
                                      </ul>

                                    </div>
  `

  setTimeout(function() {
    $('.container').html($temp);
  }, 2000);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container"></div>

我模拟了ajax异步请求,然后动态插入了html片段。

【讨论】:

  • ajax 响应中的数据怎么样?对象的 json 数组?
  • 可以遍历,最后拼接成字符串
  • 我修改了我的答案。如果对你有帮助,请采纳我的回答,谢谢:)@Mr.MarkTawin
  • 先生,我已经看到了您对答案的看法,但是如果我有大量的 html 元素,就像我上面的例子一样,我需要在 temp 中一个一个地做吗
  • 喜欢每个
  • Body Style:
猜你喜欢
相关资源
最近更新 更多
热门标签