0
async function run() {
await Excel.run(async (context) => {
const sheet = context.workbook.worksheets.getActiveWorksheet();
var num1 = document.getElementById("1");
var num2 = document.getElementById("2");
var num3 = document.getElementById("3");
var num4 = document.getElementById("4");
var num5 = document.getElementById("5");
var num6 = document.getElementById("6");
var num7 = document.getElementById("7");
var num8 = document.getElementById("8");
var num9 = document.getElementById("9");

function addtest(num1, num2) {
  return num1 + num2;
}

console.log(num1);

await context.sync();
});
}

当我记录它时,它会返回: HTMLButtonElement {} 我希望它记录它的值 1。

在此处输入图像描述在此处输入图像描述

4

2 回答 2

1

发生这种情况是因为您只能使用当前的 JavaScript 代码获取元素本身。您应该使用innerHTMLinnerTexttextContent属性来获取它所持有的值。请注意,它们都返回一个字符串,因此您应该在使用它之前解析它们的值

在你的情况下,我相信innerHTML这是最适用的。所以,这就是你应该做的:

var num1 = parseInt(document.getElementById("1").innerHTML);

num1对to重复此代码num9,您应该一切顺利。

innerHTML 属性

来自 W3Schools 的定义:

innerHTML 属性设置或返回元素的 HTML 内容(内部 HTML)。

下面的示例可以阐明如何.innerHTML更好地工作:

// From your example:
var num1 = document.getElementById('1').innerHTML;

console.log("<button> holds:", num1);

// From other use cases
let h = document.querySelector('#heading').innerHTML;
let p = document.querySelector('#paragraph').innerHTML;

console.log('<h1> holds: ', h)   ;
console.log('<p> holds: ', p);
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>innerHTML Example</title>
</head>
<body>
  <!-- Your example -->
  <button id="1">1</button>

  <!-- Other use cases -->
  <h1 id="heading">This is a heading</h1>
  <p id="paragraph">This is a paragraph</p>
</body>
</html>

有关详细信息,请参阅W3Schools 上的HTML DOM innerHTML 属性。

于 2020-07-14T03:06:37.987 回答
0

尝试这个

function addtest(num1, num2) {
  return parseInt(num1.textContent) + parseInt(num2.textContent);
}

于 2020-07-14T03:06:02.397 回答