在JavaScript代码中显示this.value未定义的消息

时间:2019-04-21 08:45:25

标签: javascript html attributes getattribute

changeText1(id)显示未定义的错误,我需要锚标记属性中的值

function changeText(id) {
  id.innerHTML = "hii";
}

function changeText1(id) {
  var idq = this.value;
  id.innerHTML = idq;
}
<!DOCTYPE html>
<html>
<body>
  <h1 onclick="changeText(this)">Click on this text!</h1>
  <h1><a onclick="changeText1(this)" value="123">Click on this text!</a></h1>
</body>
</html>

5 个答案:

答案 0 :(得分:1)

您需要使用getAttribute才能访问非标准属性。

这与this的上交值(该函数中的id)结合使用。

为了更好地理解代码,我建议将此变量重命名为element

function changeText(element) {
    element.innerHTML = "hii";
}

function changeText1(element) {
    element.innerHTML = element.getAttribute('value');
}
<h1 onclick="changeText(this)">Click on this text!</h1>
<h1><a onclick="changeText1(this)" value="123">Click on this text!</a></h1>

答案 1 :(得分:1)

要从定位标记中获取价值,您必须这样做

let x = "1010"
let y = "1100"

let intersection = zip(x, y).filter{ $0 == $1 }
let numberOfMatches = intersection.count

答案 2 :(得分:0)

请使用以下函数更新您的changeText1函数。可能您无法直接获取任何属性。

function changeText1(id) { 
    var idq = id.getAttribute("value");
    id.innerHTML = idq;
}

答案 3 :(得分:0)

value不是锚元素的有效属性。如果要在元素中存储应用程序数据,请使用data-*属性,然后使用dataset属性进行访问。

function changeText(id) {
  id.innerHTML = "hii";
}

function changeText1(id) {
  var idq = id.dataset.value;
  id.innerHTML = idq;
}
<!DOCTYPE html>
<html>
<body>
  <h1 onclick="changeText(this)">Click on this text!</h1>
  <h1><a onclick="changeText1(this)" data-value="123">Click on this text!</a></h1>
</body>
</html>

此外,您还写了this.value。但是解决该问题并不能解决问题。

答案 4 :(得分:0)

锚标记没有名为value的属性。您可以使用data来存储值。其次,两个任务都可以使用单个功能。

   
function changeText(e) {
  // get the current element which is clicked
  let elem = e.target;
  // check if the current element have any dataset with value as a key
  if (elem.dataset.value) {
    elem.innerHTML = elem.dataset.value;
    return;
  }
  elem.innerHTML = "hii";
}
// event is the event object
// value in data-value can be replaced by anything,but prefix data- is necessary 
<h1 onclick="changeText(event)">Click on this text!</h1>
<h1><a onclick="changeText(event)" data-value="123">Click on this text!</a></h1>