首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击<li>时,将单击的结果发送到href

单击<li>时,将单击的结果发送到href
EN

Stack Overflow用户
提问于 2020-01-13 13:20:10
回答 4查看 170关注 0票数 2

到目前为止,这就是我所得到的结果,但我不需要将结果发送到<div>,而是需要在<a href="Link-1"></a>中显示结果,以便它是一个链接。

代码语言:javascript
复制
var listItems = document.querySelectorAll("ul li");

listItems.forEach(function(item) {
  item.onclick = function(e) {
    document.getElementById('output').innerText = this.innerText;
  }
});
代码语言:javascript
复制
<ul>
  <li>Link-1</li>
  <li>Link-2</li>
  <li>Link-3</li>
  <li>Link-4</li>
  <li>Link-5</li>
</ul>

<div id="output"></div>

新增代码

代码语言:javascript
复制
<?php
  while ($conn = $result->fetch_assoc()) {
?>  
  <li><a href="/Link-1/<?php echo $conn["area"]; ?>/"><?php echo $conn["area"]; ?></a></li>
<?php }?>

上面的代码将一个城镇从数据库中提取出来。

,谢谢你把我推向正确的方向。是否也可以将php添加到链接中?

EN

回答 4

Stack Overflow用户

发布于 2020-01-13 13:22:35

也许你在找这个

代码语言:javascript
复制
var listItems = document.querySelectorAll("ul li");

listItems.forEach(function(item) {
  item.onclick = function(e) {
    document.getElementById('output').innerHTML = '<a href="' + this.innerText + '">' + this.innerText +'</a>';
  }
});
代码语言:javascript
复制
<ul>
  <li>Link-1</li>
  <li>Link-2</li>
  <li>Link-3</li>
  <li>Link-4</li>
  <li>Link-5</li>
</ul>

<div id="output"></div>

票数 5
EN

Stack Overflow用户

发布于 2020-01-13 13:40:15

div更改为锚点,并更新textContenthref属性。

在这个更新的答案中,我没有向每个列表项添加事件侦听器,而是将一个事件侦听器附加到列表(事件委托)中。然后,我可以使用事件的target属性来识别单击了哪些项,并使用该元素中的textContent更新锚点。

代码语言:javascript
复制
const anchor = document.querySelector('#anchor');
const list = document.querySelector('#list');

list.addEventListener('click', changeAnchor, false);

function changeAnchor({ target: { textContent } }) {
  anchor.textContent = textContent;
  anchor.href = textContent;
}    
代码语言:javascript
复制
<ul id="list">
  <li>Link-1</li>
  <li>Link-2</li>
  <li>Link-3</li>
  <li>Link-4</li>
  <li>Link-5</li>
</ul>

<a id="anchor" />

票数 2
EN

Stack Overflow用户

发布于 2020-01-13 13:35:12

您只需检索列表元素的文本,将其设置为锚标记的href属性和模板文字,方法是将锚标记包装在后台,引用占位符${}中的内部文本,然后使用innerHTML属性将其添加到#output div中,如下所示:

代码语言:javascript
复制
var listItems = document.querySelectorAll("ul li");
var output = document.getElementById('output');

listItems.forEach(item => {
  item.addEventListener('click', () => {
    output.innerHTML = `<a href="${item.innerText}">${item.innerText}</a>`;
  });
});
代码语言:javascript
复制
<ul>
  <li>Link-1</li>
  <li>Link-2</li>
  <li>Link-3</li>
  <li>Link-4</li>
  <li>Link-5</li>
</ul>

<div id="output"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59717480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档