2016-05-03 37 views
1

類好吧,所以我打算創建一個腳本,如果此代碼包含確切的單詞「is123」類「a」將被添加到div id「#1」問題是,「:包含」將無法完全包含整個字符串。我做了研究並找到答案,但沒有一個能夠理解並適用於我的情況!謝謝!如果Div包含確切的文本,添加

div id 1是倒數,每秒更改一次。

<div id="1">1:05</div> 
<div class="2 hidden">ayyy</div> 
<script> 
if ($("#1").text().trim() === "1:05") { 
$(".2").removeClass('hidden'); 
} 
</script> 
+1

'如果( $('#1').text()。trim()==='is123'){$('#1')。addClass('a'); }' – Tushar

回答

0

實施例1

優選地鉤到所述定時器功能本身,如果你有訪問該代碼。這可能是最有效的方法:

// This runs immediately when timer is updated 
 

 
function checkTime(timerValue) { 
 
    if (timerValue == '01:05') { 
 
    $('.alert').show(); 
 
    } 
 
} 
 

 
// SIMULATE YOUR TIMER - Courtesy of http://stackoverflow.com/a/20618517/1767412 
 

 
function startTimer(duration, display) { 
 
    var start = Date.now(), 
 
    diff, 
 
    minutes, 
 
    seconds; 
 

 
    function timer() { 
 
    diff = duration - (((Date.now() - start)/1000) | 0); 
 
    minutes = (diff/60) | 0; 
 
    seconds = (diff % 60) | 0; 
 
    minutes = minutes < 10 ? "0" + minutes : minutes; 
 
    seconds = seconds < 10 ? "0" + seconds : seconds; 
 
    display.textContent = minutes + ":" + seconds; 
 
    if (diff <= 0) { 
 
     start = Date.now() + 1000; 
 
    } 
 

 
    // Call your function to check the time 
 
    checkTime(display.textContent); 
 
    }; 
 
    timer(); 
 
    setInterval(timer, 1000); 
 
} 
 

 
window.onload = function() { 
 
    var display = document.querySelector('#timer'); 
 
    startTimer(70, display); 
 
};
.alert { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div id="timer"></div> 
 
<div class="alert">Time to show this div!</div> 
 
<div class="console"></div>

例2

或者你也可以做類似下面是在間隔輪詢<div>內容,並觸發該事件時,它符合您的標準。我不喜歡這種儘可能多的,因爲你已經有了在高頻率下運行一個額外的過程 - 但也有許多情況下,這可能是唯一的選擇:

/* 
 
This runs once every 0.1 seconds so it will trigger 
 
almost immediately after the timer reaches 01:05 
 
*/ 
 

 
var t = setInterval(function() { 
 
    var timerValue = $("#timer").text().trim(); 
 
    if (timerValue == '01:05') { 
 

 
    // Stop watching the timer once it matches 
 
    clearInterval(t); 
 

 
    // Show the div 
 
    $(".alert").show(); 
 
    } 
 
}, 100); 
 

 

 
/* 
 
SIMULATE YOUR TIMER 
 
Courtesy of http://stackoverflow.com/a/20618517/1767412 
 
*/ 
 

 
function startTimer(duration, display) { 
 
    var start = Date.now(), 
 
    diff, 
 
    minutes, 
 
    seconds; 
 

 
    function timer() { 
 
    diff = duration - (((Date.now() - start)/1000) | 0); 
 
    minutes = (diff/60) | 0; 
 
    seconds = (diff % 60) | 0; 
 
    minutes = minutes < 10 ? "0" + minutes : minutes; 
 
    seconds = seconds < 10 ? "0" + seconds : seconds; 
 
    display.textContent = minutes + ":" + seconds; 
 
    if (diff <= 0) { 
 
     start = Date.now() + 1000; 
 
    } 
 
    }; 
 
    timer(); 
 
    setInterval(timer, 1000); 
 
} 
 

 
window.onload = function() { 
 
    var display = document.querySelector('#timer'); 
 
    startTimer(70, display); 
 
};
.alert { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div id="timer"></div> 
 
<div class="alert">Time to show this div!</div>

+0

好吧,目前在我的情況下,計時器是在後端,會影響代碼? – skdfsfwse

+0

然後使用第二個例子。應該工作正常 – billynoah

1

使用此:

$("#1").text()==="is123" 

===意味着精確匹配

代碼:

<div id="1">is123</div> 
<script> 
if ($("#1").text()==="is123"){ 
    $("#1").addClass('a'); 
} 
</script> 
+0

太好了,你能舉一個例子來說明如何在上面的代碼中實現它嗎?我確實相信我已經嘗試過。 – skdfsfwse

+0

@xenonprozz補充:) – Meinkraft

+0

這不適合我。 – skdfsfwse

-1

試試這個

<script> 
if ($(#1).text() === "is123";).addClass('a')) 
</script> 

<div id="1">is123</div> 
+0

這是完全一樣的東西,因爲我已經做了。 – skdfsfwse

+0

試過了,不起作用? – Meinkraft

+0

@xenonprozz:沒有你錯過了雙引號 – Bhugy

3
<div id="1">is123</div> 
<script> 
if ($("#1").text().trim() === "is123") { 
    $("#1").addClass('a'); 
} 
</script> 

您需要將腳本放在元素之後,如果它位於元素之前,則由於DOM尚未呈現它而無法找到該元素。除非你把它包裝在'jQuery文檔準備好'功能中。

編輯以如果要在計時器達到某一點,你可以做一對夫婦的方式來觸發事件反映對OP

<div id="1">is123</div> 
<script> 
if ($("#1").text().trim() === "is123") { 
    $(".2").removeClass('hidden'); 
} 
</script> 
+0

要做一個更具體的,應該這個腳本放在服務器端還是客戶端? – skdfsfwse

+0

@xenonprozz JavaScript是一種客戶端腳本語言。像往常一樣將「div」放在頁面中。建議您在關閉'body'標籤之前/之後放置任何JavaScript代碼。 –

+0

現在我可能沒有正確解釋我注意到了。 「if($(」#1「).text()。trim()===」is123「){」let say,「$(」#2「)。addClass('a');」如果div#1與該文本相同,則不同的div會獲得添加的類。 – skdfsfwse

相關問題