javascript - 如何使用 url 参数过滤图库

标签 javascript jquery url-parameters

我正在为我的产品组合创建一个商业网站,并且我有一个包含产品卡库的页面,我想为其添加过滤器。这些卡片是使用 json 文件动态生成的。

我可以只使用 javascript 和 CSS 来解决这个问题,但在查看其他网站时,我注意到,然后你触发他们的过滤器,参数被附加到 URL 或从 URL 中删除。

这是我的该页面的 javascript。正如您所看到的,我已经使用了一个函数,可以通过附加到 url 来将您带到单个项目,但我无法弄清楚过滤器是如何完成此操作的。

// ========== Load Gallery Images ========================================
$.getJSON("../../json/guitars.json", function(data) {

  var guitar_data = '';

  for(var i in data) {
    // data
    var image1 = data[i].img1
    var alt = data[i].alt
    var title = data[i].title // use for sort-by
    var price = data[i].price

    // filters
    var id = data[i].product_id
    var category = data[i].category
    var brand = data[i].brand
    var condition = data[i].condition

    guitar_data += '<div class="gallery-card">'
    guitar_data += `<img class="more-info img-fluid" src="../${image1}" alt="${alt}">`
    guitar_data += `<h6>${title}</h6>`
    guitar_data += `<p><strong>${price}</strong></p>`
    guitar_data += '</div>'
  }

  $('#img-gallery').html(guitar_data)
})
// ========== Load Gallery Images End ====================================

$(document).ready(function() {
  // ======== More Info ==================================================
  $(".more-info").on("click", function(e) {

    const product_id = $(e.target).attr('product_id')

    $.getJSON("../../json/guitars.json", function(json) {
      for(let i in json) {
        if (product_id === json[i].product_id ) {
          window.location.href = "./product.html?product=" + product_id
        }
      }
    })
  })
  // ======== More Info End ===============================================

这是我的过滤器之一

<div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
                    <div class="card-body" style="border:none;">
                      <ul style="list-style:none;padding-left:5px;">
                        <li>
                          <input type="checkbox" name="brand" value="fender">
                          <label style="padding-left:10px;" for="">Fender</label>
                        </li>
                        <li>
                          <input type="checkbox" name="brand" value="gibson">
                          <label style="padding-left:10px;" for="">Gibson</label>
                        </li>
                        <li>
                          <input type="checkbox" name="brand" value="gretsch">
                          <label style="padding-left:10px;" for="">Gretsch</label>
                        </li>
                      </ul>
                    </div>
                  </div>

我不是向任何人索要代码,而是向任何人索要方向。我现在有点迷失。

最佳答案

您可以使用 method="GET" 将相关的 html 布局包装在 FORM 中,并且每次调用表单的 submit()过滤点击。

通过这种方式,每个选定的字段都会更新 URL 参数,即查询字符串。

关于javascript - 如何使用 url 参数过滤图库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524133/

相关文章:

java - RestTemplate:如何一起发送 URL 和查询参数

javascript - 页面加载后加载简单的JS代码?

javascript - 如何用密码保护表单中的任何字段(需要建议)

javascript - 用其他功能包装功能性 JSX 组件

javascript - 是否可以用不同颜色的图标更改 recaptcha 图标?

java - 如何从java servlet获取参数值

http - 如何将查询参数添加到 Dart http 请求中?

javascript - 仅以特定分辨率加载图像

javascript - 使用 AdBlocker 为用户显示替代内容

javascript - ajax jquery更新页面无需刷新