【问题标题】:How to append the text to the url as parameter when the link is clicked?单击链接时如何将文本作为参数附加到 url?
【发布时间】:2020-04-26 06:14:34
【问题描述】:

请帮助我解决我的情况。我有一个网站,其中包含许多网页,其中包含数百页和数千个链接。别管它。说说我的问题吧。

列个清单

  1. 水果 - 点击这里1
  2. Apple - 点击这里2

单击此处包含链接。让我们以 Click Here1 包含 (www.example1.com) 为例。点击这里2包含(www.example2.com)

我尝试的是,

当点击 Click Here1 时,它应该会打开 (www.example1.com#Fruit) 当点击 Click Here2 时,它应该会打开 (www.example2.com#Apple)

那该怎么做呢?我希望列表文本也与链接一起添加。请帮帮我

【问题讨论】:

  • 将 ID 添加到您的列表容器中。 IE。

    这是水果清单...

  • 如果你展示一些你已经拥有的代码,也许它会有所帮助。

标签: javascript jquery


【解决方案1】:

您可以执行以下操作:

let list = document.querySelector("ul");
list.addEventListener("click", (e) => {
  if (e.target.nodeName !== "A") return;
  e.preventDefault();
  let hash = e.target.previousSibling.textContent.split(" ")[0];
  console.log(`${e.target.href.slice(0, -1)}#${hash}`);
  document.location.href = `${e.target.href.slice(0, -1)}#${hash}`;
});
<ul>
  <li>Fruit - <a href="http://www.example1.com">Click Here1</a></li>
  <li>Apple - <a href="http://www.example2.com">Click Here2</a></li>
</ul>

您监听列表上的点击,然后如果点击发生在锚元素中,那么您抓取前一个兄弟的文本内容(水果/苹果)并将其附加到带有前缀主题标签的新 url。

【讨论】:

    【解决方案2】:

    if ('URLSearchParams' in window) {
        var searchParams = new URLSearchParams(window.location.search);
        searchParams.set("foo", "bar");
        window.location.search = searchParams.toString();
    }

    【讨论】:

      【解决方案3】:

      我正在为具有 Node.js Express 和 EJS 模板的网站工作。 在我的app.js 中,我使用以下代码:

      (该页面在其“帖子”的 URL 中名为 post.ejs

      app.get("/posts/:postId", function(req, res) {
        const requestedPostId = req.params.postId;
        Post.findOne({
          _id: requestedPostId
        }, 
      
      function(err, post) {
          res.render("post", {
          });
        });
      });
      

      如果有帮助,请告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-14
        • 2017-10-06
        • 1970-01-01
        • 1970-01-01
        • 2015-11-25
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多