如何使用jQuery生成带有加载数据的行和列?

huangapple go评论126阅读模式
英文:

How to Generate Row & Columns with load data by JQuery?

问题

我想使用jQuery的each函数重复生成带有数据的行和列。请帮忙。

所需的HTML结构和jQuery尝试:

  1. <!-- begin snippet: js hide: false console: true babel: false -->
  2. <!-- language: lang-js -->
  3. var data = [{
  4. "name": "Alice",
  5. "surname": "Smith",
  6. "rollnum": "00002"
  7. },
  8. {
  9. "name": "Bob",
  10. "surname": "Walter",
  11. "rollnum": "00004"
  12. }
  13. ];
  14. load();
  15. function load() {
  16. var name = document.querySelector(".name");
  17. var surname = document.querySelector(".surname");
  18. $.each(data, function(index, value) {
  19. var $name = value.name;
  20. var $surname = value.surname;
  21. var $rollnum = value.rollnum;
  22. console.log($name);
  23. console.log($surname);
  24. console.log($name);
  25. $(".name").text($name);
  26. $(".surname").text($surname);
  27. $(".rollnum").text($rollnum);
  28. });
  29. }
  30. <!-- language: lang-html -->
  31. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
  32. <div class="eventsBlock">
  33. <div class="row">
  34. <div class="col-md-4 col-sm-4">
  35. <span class="name">name</span>
  36. </div>
  37. <div class="col-md-4 col-sm-4">
  38. <span class="surname">surname</span>
  39. <span class="rollnum">rollnum</span>
  40. </div>
  41. <div class="col-md-4 col-sm-4">
  42. <span class="locaton">locaton</span>
  43. </div>
  44. </div>
  45. </div>
  46. <!-- end snippet -->

链接:https://jsfiddle.net/anoopsuda/3a6ucg4d/3/

英文:

I want to generate row and column repeatably with data by jquery each function. Please help.

Required HTML Structure and jquery attempt:

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

  1. var data = [{
  2. &quot;name&quot;: &quot;Alice&quot;,
  3. &quot;surname&quot;: &quot;Smith&quot;,
  4. &quot;rollnum&quot;: &quot;00002&quot;
  5. },
  6. {
  7. &quot;name&quot;: &quot;Bob&quot;,
  8. &quot;surname&quot;: &quot;Walter&quot;,
  9. &quot;rollnum&quot;: &quot;00004&quot;
  10. }
  11. ];
  12. load();
  13. function load() {
  14. var name = document.querySelector(&quot;.name&quot;);
  15. var surname = document.querySelector(&quot;.surname&quot;);
  16. $.each(data, function(index, value) {
  17. var $name = value.name;
  18. var $surname = value.surname;
  19. var $rollnum = value.rollnum;
  20. console.log($name);
  21. console.log($surname);
  22. console.log($name);
  23. $(&quot;.name&quot;).text($name);
  24. $(&quot;.surname&quot;).text($surname);
  25. $(&quot;.rollnum&quot;).text($rollnum);
  26. });
  27. }

<!-- language: lang-html -->

  1. &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js&quot;&gt;&lt;/script&gt;
  2. &lt;div class=&quot;eventsBlock&quot;&gt;
  3. &lt;div class=&quot;row&quot;&gt;
  4. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  5. &lt;span class=&quot;name&quot;&gt;name&lt;/span&gt;
  6. &lt;/div&gt;
  7. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  8. &lt;span class=&quot;surname&quot;&gt;surname&lt;/span&gt;
  9. &lt;span class=&quot;rollnum&quot;&gt;rollnum&lt;/span&gt;
  10. &lt;/div&gt;
  11. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  12. &lt;span class=&quot;locaton&quot;&gt;locaton&lt;/span&gt;
  13. &lt;/div&gt;
  14. &lt;/div&gt;
  15. &lt;/div&gt;

<!-- end snippet -->

https://jsfiddle.net/anoopsuda/3a6ucg4d/3/

答案1

得分: 2

你需要使用.append()方法,并且需要在surnamerollnumber附近稍微改变HTML结构(按照我的建议将它们放在单独的div中)。

  1. var data = [{
  2. "name": "Alice",
  3. "surname": "Smith",
  4. "rollnum": "00002"
  5. },
  6. {
  7. "name": "Bob",
  8. "surname": "Walter",
  9. "rollnum": "00004"
  10. }
  11. ];
  12. load();
  13. function load() {
  14. $.each(data, function(index, value) {
  15. $('.eventsBlock').append(`<div class="row">
  16. <div class="col-md-4 col-sm-4">
  17. <span class="name">name: ` + value.name + `</span>
  18. </div>
  19. <div class="col-md-4 col-sm-4">
  20. <span class="surname">surname: ` + value.surname + `</span>
  21. </div>
  22. <div class="col-md-4 col-sm-4">
  23. <span class="rollnum">rollnum: ` + value.rollnum + `</span>
  24. </div>
  25. <div class="col-md-4 col-sm-4">
  26. <span class="locaton">locaton: N/A</span>
  27. </div>
  28. </div><br>`);
  29. });
  30. }

如果你使用下面的表格HTML会更好:

  1. var data = [{
  2. "name": "Alice",
  3. "surname": "Smith",
  4. "rollnum": "00002"
  5. },
  6. {
  7. "name": "Bob",
  8. "surname": "Walter",
  9. "rollnum": "00004"
  10. }
  11. ];
  12. load();
  13. function load() {
  14. $.each(data, function(index, value) {
  15. $('.eventsBlock tbody').append(`<tr>
  16. <td>` + value.name + `</td>
  17. <td>` + value.surname + `</td>
  18. <td>` + value.rollnum + `</td>
  19. <td>N/A</td>
  20. </tr>`);
  21. });
  22. }

希望对你有帮助!

英文:

You need to use .append() for this and need to change HTML structure a bit near surname and rollnumber (put them in separate div as per my suggestion)

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

  1. var data = [{
  2. &quot;name&quot;: &quot;Alice&quot;,
  3. &quot;surname&quot;: &quot;Smith&quot;,
  4. &quot;rollnum&quot;: &quot;00002&quot;
  5. },
  6. {
  7. &quot;name&quot;: &quot;Bob&quot;,
  8. &quot;surname&quot;: &quot;Walter&quot;,
  9. &quot;rollnum&quot;: &quot;00004&quot;
  10. }
  11. ];
  12. load();
  13. function load() {
  14. $.each(data, function(index, value) {
  15. $(&#39;.eventsBlock&#39;).append(`&lt;div class=&quot;row&quot;&gt;
  16. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  17. &lt;span class=&quot;name&quot;&gt;name: ` + value.name + `&lt;/span&gt;
  18. &lt;/div&gt;
  19. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  20. &lt;span class=&quot;surname&quot;&gt;surname: ` + value.surname + `&lt;/span&gt;
  21. &lt;/div&gt;
  22. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  23. &lt;span class=&quot;rollnum&quot;&gt;rollnum: ` + value.rollnum + `&lt;/span&gt;
  24. &lt;/div&gt;
  25. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  26. &lt;span class=&quot;locaton&quot;&gt;locaton: N/A&lt;/span&gt;
  27. &lt;/div&gt;
  28. &lt;/div&gt;&lt;br&gt;`);
  29. });
  30. }

<!-- language: lang-html -->

  1. &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js&quot;&gt;&lt;/script&gt;
  2. &lt;div class=&quot;eventsBlock&quot;&gt;
  3. &lt;/div&gt;

<!-- end snippet -->

It would be much better if you use table HTML like this:

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

  1. var data = [{
  2. &quot;name&quot;: &quot;Alice&quot;,
  3. &quot;surname&quot;: &quot;Smith&quot;,
  4. &quot;rollnum&quot;: &quot;00002&quot;
  5. },
  6. {
  7. &quot;name&quot;: &quot;Bob&quot;,
  8. &quot;surname&quot;: &quot;Walter&quot;,
  9. &quot;rollnum&quot;: &quot;00004&quot;
  10. }
  11. ];
  12. load();
  13. function load() {
  14. $.each(data, function(index, value) {
  15. $(&#39;.eventsBlock tbody&#39;).append(`&lt;tr&gt;
  16. &lt;td&gt;` + value.name + `&lt;/td&gt;
  17. &lt;td&gt;` + value.surname + `&lt;/td&gt;
  18. &lt;td&gt;` + value.rollnum + `&lt;/td&gt;
  19. &lt;td&gt;N/A&lt;/td&gt;
  20. &lt;/tr&gt;`);
  21. });
  22. }

<!-- language: lang-html -->

  1. &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js&quot;&gt;&lt;/script&gt;
  2. &lt;table class=&quot;eventsBlock&quot;&gt;
  3. &lt;thead&gt;
  4. &lt;tr&gt;
  5. &lt;th&gt;name&lt;/th&gt;
  6. &lt;th&gt;surname&lt;/th&gt;
  7. &lt;th&gt;rollnum&lt;/th&gt;
  8. &lt;th&gt;locaton&lt;/th&gt;
  9. &lt;tr&gt;
  10. &lt;/thead&gt;
  11. &lt;tbody&gt;
  12. &lt;/tbody&gt;
  13. &lt;/table&gt;

<!-- end snippet -->

答案2

得分: 1

这段代码是使用jQuery编写的。以下是翻译好的代码:

  1. <div class="eventsBlock">
  2. <div class="row">
  3. <div class="col-md-4 col-sm-4">
  4. <span class="name">姓名</span>
  5. </div>
  6. <div class="col-md-4 col-sm-4">
  7. <span class="surname">姓氏</span>
  8. <span class="rollnum">学号</span>
  9. </div>
  10. <div class="col-md-4 col-sm-4">
  11. <span class="locaton">地点</span>
  12. </div>
  13. </div>
  14. </div>
  15. <div class="eventsRows">
  16. <!--内容将在这里显示-->
  17. </div>
  1. var data = [
  2. {
  3. "name": "Alice",
  4. "surname": "Smith",
  5. "rollnum": "00002",
  6. "locaton": "孟买"
  7. },
  8. {
  9. "name": "Bob",
  10. "surname": "Walter",
  11. "rollnum": "00004",
  12. "locaton": "德里"
  13. }
  14. ];
  15. function load(){
  16. let allRows = '';
  17. $.each(data, function (index, value) {
  18. var $name = value.name;
  19. var $surname = value.surname;
  20. var $rollnum = value.rollnum;
  21. var $locaton = value.locaton;
  22. let rowView = `<div class="row">
  23. <div class="col-md-4 col-sm-4">
  24. <span class="name">${$name}</span>
  25. </div>
  26. <div class="col-md-4 col-sm-4">
  27. <span class="surname">${$surname}</span>
  28. <span class="rollnum">${$rollnum}</span>
  29. </div>
  30. <div class="col-md-4 col-sm-4">
  31. <span class="locaton">${$locaton}</span>
  32. </div>
  33. </div>`;
  34. allRows += rowView;
  35. });
  36. $('.eventsRows').html(allRows);
  37. }
  38. load();

请注意,这只是代码的翻译部分,不包括任何其他内容。

英文:

This works if you're using jQuery.

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

  1. var data = [
  2. {
  3. &quot;name&quot;:&quot;Alice&quot;,
  4. &quot;surname&quot;:&quot;Smith&quot;,
  5. &quot;rollnum&quot;:&quot;00002&quot;,
  6. &quot;locaton&quot;:&quot;Mumbai&quot;
  7. },
  8. {
  9. &quot;name&quot;:&quot;Bob&quot;,
  10. &quot;surname&quot;:&quot;Walter&quot;,
  11. &quot;rollnum&quot;:&quot;00004&quot;,
  12. &quot;locaton&quot;:&quot;Delhi&quot;
  13. }
  14. ];
  15. function load(){
  16. let allRows = &#39;&#39;
  17. $.each(data, function (index, value) {
  18. var $name = value.name;
  19. var $surname = value.surname;
  20. var $rollnum = value.rollnum;
  21. var $locaton = value.locaton;
  22. let rowView = `&lt;div class=&quot;row&quot;&gt;
  23. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  24. &lt;span class=&quot;name&quot;&gt;${$name}&lt;/span&gt;
  25. &lt;/div&gt;
  26. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  27. &lt;span class=&quot;surname&quot;&gt;${$surname}&lt;/span&gt;
  28. &lt;span class=&quot;rollnum&quot;&gt;${$rollnum}&lt;/span&gt;
  29. &lt;/div&gt;
  30. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  31. &lt;span class=&quot;locaton&quot;&gt;${$locaton}&lt;/span&gt;
  32. &lt;/div&gt;
  33. &lt;/div&gt;
  34. &lt;/div&gt;`
  35. allRows += rowView
  36. });
  37. $(&#39;.eventsRows&#39;).html(allRows)
  38. }
  39. load();

<!-- language: lang-html -->

  1. &lt;div class=&quot;eventsBlock&quot;&gt;
  2. &lt;div class=&quot;row&quot;&gt;
  3. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  4. &lt;span class=&quot;name&quot;&gt;name&lt;/span&gt;
  5. &lt;/div&gt;
  6. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  7. &lt;span class=&quot;surname&quot;&gt;surname&lt;/span&gt;
  8. &lt;span class=&quot;rollnum&quot;&gt;rollnum&lt;/span&gt;
  9. &lt;/div&gt;
  10. &lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;
  11. &lt;span class=&quot;locaton&quot;&gt;locaton&lt;/span&gt;
  12. &lt;/div&gt;
  13. &lt;/div&gt;
  14. &lt;/div&gt;
  15. &lt;div class=&quot;eventsRows&quot;&gt;
  16. &lt;!--Content will go here--&gt;
  17. &lt;/div&gt;

<!-- end snippet -->

答案3

得分: 1

你需要在循环中使用一个变量。

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

  1. var data = [{
  2. "name": "Alice",
  3. "surname": "Smith",
  4. "rollnum": "00002"
  5. },
  6. {
  7. "name": "Bob",
  8. "surname": "Walter",
  9. "rollnum": "00004"
  10. }
  11. ];
  12. load();
  13. function load() {
  14. var output = '';
  15. var name = document.querySelector(".name");
  16. var surname = document.querySelector(".surname");
  17. $.each(data, function(index, value) {
  18. var $name = value.name;
  19. var $surname = value.surname;
  20. var $rollnum = value.rollnum;
  21. console.log($name + ' - ' + $surname + ' - ' + $rollnum);
  22. output += '<div class="row"><div class="col-md-4 col-sm-4"><span class="name">' + $name + '</span></div><div class="col-md-4 col-sm-4"><span class="surname">' + $surname + '</span><span class="rollnum">' + $rollnum + '</span></div><div class="col-md-4 col-sm-4"><span class="locaton">locaton</span></div></div>';
  23. });
  24. $('.eventsBlock').html(output);
  25. }

<!-- language: lang-html -->

  1. &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt;
  2. &lt;div class="eventsBlock"&gt;&lt;/div&gt;

<!-- end snippet -->

英文:

You need to use a var in your loop

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

  1. var data = [{
  2. &quot;name&quot;: &quot;Alice&quot;,
  3. &quot;surname&quot;: &quot;Smith&quot;,
  4. &quot;rollnum&quot;: &quot;00002&quot;
  5. },
  6. {
  7. &quot;name&quot;: &quot;Bob&quot;,
  8. &quot;surname&quot;: &quot;Walter&quot;,
  9. &quot;rollnum&quot;: &quot;00004&quot;
  10. }
  11. ];
  12. load();
  13. function load() {
  14. var output = &#39;&#39;;
  15. var name = document.querySelector(&quot;.name&quot;);
  16. var surname = document.querySelector(&quot;.surname&quot;);
  17. $.each(data, function(index, value) {
  18. var $name = value.name;
  19. var $surname = value.surname;
  20. var $rollnum = value.rollnum;
  21. console.log($name + &#39; - &#39; + $surname + &#39; - &#39; + $rollnum);
  22. output += &#39;&lt;div class=&quot;row&quot;&gt;&lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;&lt;span class=&quot;name&quot;&gt;&#39; + $name + &#39;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;&lt;span class=&quot;surname&quot;&gt;&#39; + $surname + &#39;&lt;/span&gt;&lt;span class=&quot;rollnum&quot;&gt;&#39; + $rollnum + &#39;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;col-md-4 col-sm-4&quot;&gt;&lt;span class=&quot;locaton&quot;&gt;locaton&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#39;;
  23. });
  24. $(&#39;.eventsBlock&#39;).html(output);
  25. }

<!-- language: lang-html -->

  1. &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js&quot;&gt;&lt;/script&gt;
  2. &lt;div class=&quot;eventsBlock&quot;&gt;&lt;/div&gt;

<!-- end snippet -->

huangapple
  • 本文由 发表于 2023年8月9日 17:36:08
  • 转载请务必保留本文链接:https://go.coder-hub.com/76866419.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定