我正在尝试从链接中获取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 ......出了什么问题?
答案 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属性的值 文本字段。
因此,请尝试使用innerHTML
或textContent
:
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);
}