使用onclick获取值

时间:2017-04-19 12:38:50

标签: javascript

我正在尝试从链接中获取2个值

<a onclick="rev()" href="track_path">
  <span id="name">username</span> - <span id="track">track_name</span>
</a>

<script>
function rev() {
  var username = document.getElementById("name").value;
  var track = document.getElementById("track").value;
  return alert (username);
}
</script>

但是当警报到来时,它写下了UNDEFINED ......出了什么问题?

3 个答案:

答案 0 :(得分:1)

.value仅用于获取input,select或textarea字段的值。对于html标记,您需要使用.innerHTML

将脚本更改为:

<script>
function rev(){
  var username = document.getElementById("name").innerHTML;
  var track = document.getElementById("track").innerHTML;
return alert (username);
}
</script>

答案 1 :(得分:1)

根据w3schools定义:

  

value属性设置或返回value属性的值   文本字段。

因此,请尝试使用innerHTMLtextContent

  var username = document.getElementById("name").innerHTML;

  var username = document.getElementById("name").textContent;

答案 2 :(得分:0)

value表示输入元素的值,而innerHTML表示元素内的HTML。这是一个例子:

<input type="text" value="foo" id="input">
<div id="div">foo</div>

在第一种情况下,您有输入,因此需要使用document.getElementById("input").value,而在第二种情况下,您需要使用document.getElementById("div").innerHTML
请记住,如果必须从函数外部的Javascript元素中获取值,最好使用window.onload来确保Javascript识别元素。
在您的情况下,您必须使用此脚本:

function rev() {
  var username = document.getElementById("name").innerHTML;
  var track = document.getElementById("track").innerHTML;
  return alert (username);
}