你可以通過簡單地聲明一個變量,說var nameInput
,然後將DOM節點分配給它:
var nameInput = document.getElementById('name');
請注意,您應該不是正在使用name
,因爲它是一個implementation-dependent reserved keyword in JavaScript。
要訪問其樣式對象,只需使用nameInput.style...
即可。 nameInput.style.visibility = 'visible'
如果你想更新visibility
屬性。
如果你想找回它的價值,你可以這樣做:
console.log(nameInput.value);
var gameOver = true;
if (gameOver) {
var nameInput = document.getElementById('name');
nameInput.style.visibility = 'visible';
console.log('DOM node: ' + nameInput);
console.log('Value: ' + nameInput.value);
}
<input id="name" type="text" class="name" style="visibility: hidden;" />
如果要動態檢索其值作爲用戶輸入的話,您將需要閱讀使用.addEventListener()
事件綁定。 JS是沒有反應意義上說,你動態更新變量時,用戶與頁面交互。政權是這樣的:
- 用戶觸發某種事件。在這種情況下,您希望收聽
onInput
,onChange
,onBlur
...事件
- 在您的JS邏輯中,您將不得不聆聽元素髮出的此事件。這是通過將事件監聽器綁定到您的DOM節點來完成的。
var gameOver = true;
if (gameOver) {
var nameInput = document.getElementById('name');
nameInput.style.visibility = 'visible';
console.log('DOM node: ' + nameInput);
console.log('Value: ' + nameInput.value);
}
nameInput.addEventListener('input', function() {
console.log('Updated value: ' + this.value);
});
<input id="name" type="text" class="name" style="visibility: hidden;" />
感謝您的回覆。但它似乎控制檯登錄之前,我已經輸入任何東西,所以價值總是「」 – user8570650
@ user8570650這是因爲JS是沒有反應。如果您想在用戶輸入內容時獲得該值,您需要[將事件監聽器綁定到它](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)。 – Terry
Oh ok Thanks)) – user8570650