как сделать компонент html и css на javascript? - PullRequest
1 голос
/ 18 января 2020

Я хочу обобщить свой код HTML и сделать компонент Javascript. Мой код Html содержит список картинок, которые я поместил в теги <li>. Каждое изображение имеет специальную ссылку и число в теге <div>. Как я могу создать шаблон для их генерации по javascript?

Кроме того, я хочу отсортировать эти фото по этим номерам, в соответствии с наивысшим, наименьшим, и я не знаю, как это сделать. В целом, верно ли обобщать код HTML таким образом?

<ul class="product-list">
  <li class="product-item">
    <a id="producItem1" href="page2.htm">
      <img class="clothes" src="dress1.jpg">
    </a>
    <div class="price-holder">
      <p id="price1">250,000</p>
    </div>
  </li>
  <li class="product-item">
    <a id="producItem2">
      <img class="clothes" src="coat1.jpg">
    </a>
    <div class="price-holder">
      <p id="price2">350,000</p>
    </div>
  </li>
  <li class="product-item">
    <a id="producItem3">
      <img class="clothes" src="shirt1.jpg">
    </a>
    <div class="price-holder">
      <p id="price3">150,000</p>
    </div>
  </li>
  <li class="product-item">
    <a id="producItem4">
      <img class="clothes" src="skirt1.jpg">
    </a>
    <div class="price-holder">
      <p id="price4">200,000</p>
    </div>
  </li>
</ul>

1 Ответ

1 голос
/ 20 января 2020

используйте это, если вы хотите создать список из javascript данных, вы можете использовать объекты, но я использовал массивы, потому что вы сказали, что сервер не задействован, поэтому вы будете генерировать данные имен изображений и цен вручную

$(document).ready(function(){

imgz=['dress1.jpg', 'coat1.jpg', 'shirt1.jpg', 'skirt1.jpg','dress2.jpg'];
prices=[100000, 200000, 150000, 250000, 300000];
linkz=['page1.htm','page2.htm','page3.htm','page4.htm','page5.htm'];
//linkz=[];imgz.forEach((v,i)=>{linkz[i]='page'+(i+1)+'.htm';});
  imgz.map((z,i)=> $('body').append(`
  <li class="product-item">
    <a id="producItem${i+1}" href='${linkz[i]}'>
      <img class="clothes" src="${imgz[i]}">
    </a>
    <div class="price-holder">
      <p id="price${i+1}">${prices[i]}</p>
    </div>
  </li>`));
      
      });
<html><head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js">
</script></head>

<body><ul class="product-list"></ul></body></html>

, и если вы хотите создать данные ссылок автоматически, используйте это
linkz=[];imgz.forEach((v,i)=>{linkz[i]='page'+(i+1)+'.htm';});
вместо linkz=['page1.htm','page2.htm','page3.htm','page4.htm','page5.htm'];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...