【问题标题】:How do I pass the link anchor text如何传递链接锚文本
【发布时间】:2013-05-20 15:40:04
【问题描述】:

我是 Javascript 新手,我问了几个 Javascript 朋友,他们似乎没有答案。我一直在用 PHP 开发一个简单的搜索查询,它会输出几个结果,例如:

<a href="#" onclick="injectForm(this);">Result Text Here</a>
<a href="#" onclick="injectForm(this);">Result Text 2 Here</a>
<a href="#" onclick="injectForm(this);">Result Text 3 Here</a>


<form id="form1" name="form1" method="post" action="">
<label for="textfield"></label>
<input type="text" name="textfield" id="textfield" />Search
</form>

injectForm() 的伪代码;

  • 获取刚刚点击的链接的.value
  • 将其传递给变量,即 result = (something something).value
  • 设置 form1.textfield.value = 结果

我想做的是有一个简单的 injectForm() 函数,它读取结果“Anchor Text Here”的值,所以当有人点击它时 - 它会将值“Result Text Here”放到“文本字段”在表单中。我相信你可以用 DOM 做到这一点——我不想使用任何 JS 库,比如 Jquery。

有人有想法吗?如果我为每个 href 使用不同的 DIV 或 SPAN 标签,您可以使用 DOM - 如果可能,我希望不必用不同的 div 或类对每个结果进行编号 - 只需阅读相对 this();有点像。

【问题讨论】:

  • 是的。我读过一本关于 javascript 的书,它总是引用带有特定 div 或 ID 标签的 DOM 模型。我试图更好地理解'this();' function - 所以在不理解 this() 的情况下尝试编写函数;将毫无意义。如果你想看的话,我会开始的。

标签: javascript forms syntax anchor hyperlink


【解决方案1】:

很简单

document.getElementById("injectDiv").addEventListener("click", function(e) {
  tgt = e.target;
  if (tgt.classList.contains("inject")) {
    e.preventDefault(); // cancel link
    document.getElementById("textfield").value = tgt.innerHTML;
  }
})
<div id="injectDiv">
  <a href="#" class="inject">Result Text 1 Here</a><br/>
  <a href="#" class="inject">Result Text 2 Here</a><br/>
  <a href="#" class="inject">Result Text 3 Here</a><br/></div>
<input type="text" id="textfield" />

旧的内联版本

function injectForm(theLink) {
  document.getElementById("textfield").value = theLink.innerHTML;
  return false; // cancel the click
}
<a href="#" onclick="return injectForm(this);">Result Text 1 Here</a><br/>
<a href="#" onclick="return injectForm(this);">Result Text 2 Here</a><br/>
<a href="#" onclick="return injectForm(this);">Result Text 3 Here</a>
<br/>
<input type="text" id="textfield" />

【讨论】:

  • 成功了!这简直是​​我有史以来最快的反应!谢谢谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
相关资源
最近更新 更多