2 回答

TA貢獻1842條經驗 獲得超13個贊
您可以使用textContent
或innerHTML
。
這是一個使用的示例textContent
:
function add() {
? var input1 = parseInt(document.getElementById("t1").value);
? var input2 = parseInt(document.getElementById("t2").value);
? var result = input1 + input2;
? document.getElementById('add-result').textContent = result;
}
function divide() {
? var input1 = parseInt(document.getElementById("t3").value);
? var input2 = parseInt(document.getElementById("t4").value);
? var result = Math.floor(input1 / input2);
? var remainder = input1 % input2
? document.getElementById('divide-result').textContent = result;
? document.getElementById('divide-remainder').textContent = remainder;
}
function multiply() {
? var input1 = parseInt(document.getElementById("t5").value);
? var input2 = parseInt(document.getElementById("t6").value);
? var result = input1 * input2;
? document.getElementById('multiply-result').textContent = result;
}
function subtract() {
? var input1 = parseInt(document.getElementById("t7").value);
? var input2 = parseInt(document.getElementById("t8").value);
? var result = input1 - input2;
? document.getElementById('subtract-result').textContent = result;
}
<div>
? <h1>Addition</h1>
? <input type="text" id="t1" name="t1"> +
? <input type="text" id="t2" name="t2">
? <input type="button" id="add" value="=" onClick="add();">
? <span id="add-result"></span>
</div>
<div>
? <h1>Subtraction</h1>
? <input type="text" id="t7" name="t7"> -
? <input type="text" id="t8" name="t8">
? <input type="button" id="subtract" value="=" onClick="subtract();">
? <span id="subtract-result"></span>
</div>
<div>
? <h1>Multiplication</h1>
? <input type="text" id="t5" name="t5"> *
? <input type="text" id="t6" name="t6">
? <input type="button" id="multiply" value="=" onClick="multiply();">
? <span id="multiply-result"></span>
</div>
<div>
? <h1>Division</h1>
? <input type="text" id="t3" name="t3"> ÷
? <input type="text" id="t4" name="t4">
? <input type="button" id="divide" value="=" onClick="divide();">
? <span id="divide-result"></span> |?
? <span id="divide-remainder"></span>
</div>
withtextContent
只能設置文本,withinnerHTML
可以設置 HTML:
function add() {
? var input1 = parseInt(document.getElementById("t1").value);
? var input2 = parseInt(document.getElementById("t2").value);
? var result = input1 + input2;
? document.getElementById('add-result').innerHTML = `<i style="color: blue">${result}</i>`;
}
function divide() {
? var input1 = parseInt(document.getElementById("t3").value);
? var input2 = parseInt(document.getElementById("t4").value);
? var result = Math.floor(input1 / input2);
? var remainder = input1 % input2
? document.getElementById('divide-result').innerHTML = `<i style="color: blue">${result}</i>`;
? document.getElementById('divide-remainder').innerHTML = `<i style="color: blue">${remainder}</i>`;
}
function multiply() {
? var input1 = parseInt(document.getElementById("t5").value);
? var input2 = parseInt(document.getElementById("t6").value);
? var result = input1 * input2;
? document.getElementById('multiply-result').innerHTML = `<i style="color: blue">${result}</i>`;
}
function subtract() {
? var input1 = parseInt(document.getElementById("t7").value);
? var input2 = parseInt(document.getElementById("t8").value);
? var result = input1 - input2;
? document.getElementById('subtract-result').innerHTML = `<i style="color: blue">${result}</i>`;
}
<div>
? <h1>Addition</h1>
? <input type="text" id="t1" name="t1"> +
? <input type="text" id="t2" name="t2">
? <input type="button" id="add" value="=" onClick="add();">
? <span id="add-result"></span>
</div>
<div>
? <h1>Subtraction</h1>
? <input type="text" id="t7" name="t7"> -
? <input type="text" id="t8" name="t8">
? <input type="button" id="subtract" value="=" onClick="subtract();">
? <span id="subtract-result"></span>
</div>
<div>
? <h1>Multiplication</h1>
? <input type="text" id="t5" name="t5"> *
? <input type="text" id="t6" name="t6">
? <input type="button" id="multiply" value="=" onClick="multiply();">
? <span id="multiply-result"></span>
</div>
<div>
? <h1>Division</h1>
? <input type="text" id="t3" name="t3"> ÷
? <input type="text" id="t4" name="t4">
? <input type="button" id="divide" value="=" onClick="divide();">
? <span id="divide-result"></span> |
? <span id="divide-remainder"></span>
</div>
值得注意的是,innerHTML
這里提到存在安全問題:
...有多種方法可以在不使用元素的情況下執行 JavaScript,因此每當您使用 innerHTML 來設置您無法控制的字符串時,仍然存在安全風險。例如:
const?name?=?"<img?src='x'?onerror='alert(1)'>"; el.innerHTML?=?name;?//?shows?the?alert
因此,建議您在插入純文本時不要使用innerHTML;相反,使用 Node.textContent。這不會將傳遞的內容解析為 HTML,而是將其作為原始文本插入。
以下是一些用于操作 DOM 的其他方法:
插入相鄰元素
內部文本
插入相鄰HTML
插入相鄰文本
插入之前
附加子項
替換子項
刪除子項
節點值
外部HTML
外部文本
消除

TA貢獻1874條經驗 獲得超12個贊
正如您所發現的,document.write()
它很棘手,因為它在使用時傾向于覆蓋現有內容。
注意:由于 document.write() 寫入文檔流,因此在關閉(已加載)文檔上調用 document.write() 會自動調用 document.open(),這將清除文檔。
嗯,那我們還能做什么呢?幸運的是,可以定位頁面的特定部分并僅替換這些元素中的內容。因此,例如,我們可以將<span>
具有 id 等的元素#add-result
添加#div-result
到頁面,其中將包含其各自操作的結果。document.write()
然后,我們可以替換這些元素中的內容,而不是使用它來輸出結果。
讓我們添加一個<span>
來包含我們的添加結果:
? ? ?Addition<p>
? ? ? ? ? ? <input type="text" id="t1" name="t1" /> +
? ? ? ? ? ? <input type="text" id="t2" name="t2" />
? ? ? ? ? ? <input type="button" id="add" value="=" onClick="add();" />
? ? ? ? ? ? <span id="add-result></span>
? ? ? ? ? ? </p>
(注意:記得用 關閉<input />標簽/>?。?/p>
我們如何針對特定元素?與document.querySelector(). 文檔
然后,我們可以通過更新屬性輕松更改該元素內部的內容element.textContent,就像變量一樣:
? ? function add(){
? ? ? ? var input1 = parseInt(document.getElementById("t1").value);
? ? ? ? var input2 = parseInt(document.getElementById("t2").value);
? ? ? ? var result = input1+input2;
? ? ? ??
? ? ? ? // get the element with the #add-result ID
? ? ? ? var element = document.querySelector("#add-result");
? ? ? ? // update the content in that element
? ? ? ? element.textContent = result;
? ? }
現在,當您將兩個數字相加并按 時=,結果將顯示在<span id="add-result"></span>元素內部,而不是覆蓋整個頁面??纯词欠褚部梢允蛊溥m用于其他輸入。請記住,您需要為要在其中顯示結果的每個元素提供唯一的ID,并相應地更新計算函數!
添加回答
舉報