我目前正在使用此腳本按 ID 號隱藏元素:
function items() {
var div = document.getElementById('QTDItems');
var itensQtd = div.textContent;
if (itensQtd == 1) {
for(var i=2; i<=20; i ){
var element = document.getElementById("item" i);
element.style.display = 'none';
}
}
else if (itensQtd == 2) {
for(var i=3; i<=20; i ){
var element = document.getElementById("item" i);
element.style.display = 'none';
}
}
// And so on until the else if (itensQtd == 18)
我使用的是itensQtd = div.textContent因為我將一個 PHP 變數轉義為 html,如下所示:
<div id="QTDItems" style="display: block;">
<?php echo block_field('exame-qtd'); ?>
</div>
但是對于 20 個 div 中的每一個,我都必須創建一個 IF 來選擇將隱藏哪些 ID 號。我還不太擅長 JavaScript,所以我不知道如何讓它更短更智能。有人可以幫忙嗎?
uj5u.com熱心網友回復:
嘗試這樣的事情:
function HideItems(itensQtd){
for(var i=itensQtd 1; i<=20; i ){
var element = document.getElementById("item" i);
element.style.display = 'none';
}
}
或者你可以使用箭頭函式:
HideItems = (itensQtd) => {
for(var i=itensQtd 1; i<=20; i ){
var element = document.getElementById("item" i);
element.style.display = 'none';
}
}
注意:最好將條件中的數字替換為"i<=20"找到的 div 總數。
然后你就這樣稱呼它。如果有條件,則無需呼叫:
var div = document.getElementById('QTDItems');
var itensQtd = div.textContent;
HideItems(itensQtd);
uj5u.com熱心網友回復:
好吧,這里有很多問題。您絕對應該查看 Youtube 或其他資源(如W3Schools)上的 JavaScript 教程。首先,你應該使用 let/const 而不是 var。因此,無論何時要創建變數,都可以使用let,如下所示:
let itensQtd = div.textContent;
或這個:
for(let i = 0; i < n; i )
您還需要正確決議文本內容并確保它是一個數字。
const goalID = parseInt(div.textContent);
當涉及到您的問題時,您可以創建一個回圈來迭代每個元素并將它們設定為無,除非它是您要顯示的元素。
for(let i = 1; i <= 20; i ) {
const element = document.getElementById(`item ${i}`);
if(i === goalID) element.style.display = 'block'; // not sure how you want to display the one that you don't want to hide.
else element.style.display = 'none';
}
總的來說,這將解決上述問題,但你絕對應該嘗試做一個現代 JavaScript 教程來學習基礎知識。不確定你更大的專案是什么,但如果你需要通過決議另一個元素的文本內容來找到要隱藏/顯示的元素,肯定會有問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/397584.html
標籤:javascript if 语句
上一篇:如果五個變數中有兩個不是NA而另一個變數存在于R中,則根據條件創建新變數
下一篇:我猜將字串與整數進行比較的問題
