Как связать значение кнопки html с созданными мной переменными? прямо сейчас он говорит, что регистрирует его как объект html, но не по его значению - PullRequest
0 голосов
/ 14 июля 2020
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.

enter image description here введите здесь описание изображения

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Это происходит потому, что вы получаете только сам элемент с вашим текущим кодом JavaScript. Вы должны использовать свойства innerHTML, innerText или textContent, чтобы получить значение, которое оно содержит. Обратите внимание, что все они возвращают строку, поэтому вам следует проанализировать их значения, прежде чем использовать .

В вашем случае, я считаю, что innerHTML - это то, что лучше всего подходит. Итак, вот что вам следует делать:

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

Повторите этот код для num1 - num9, и вам должно быть хорошо go.

Внутренний HTML Свойство

Из определения W3Schools:

Внутреннее свойство HTML устанавливает или возвращает 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>

См. HTML DOM inner HTML Property в W3Schools для получения дополнительной информации.

0 голосов
/ 14 июля 2020

Попробуйте это

function addtest(num1, num2) {
  return parseInt(num1.textContent) + parseInt(num2.textContent);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...