如果Div包含精确文本,则添加类
If Div Contains EXACT text, add class
好的,所以我想制作一个脚本,如果这个代码包含确切的单词"123",那么类"a"将被添加到div id"#1"中,问题是,":contains"将在不完全包含整个字符串的情况下工作。我做了研究并找到了答案,但没有一个我能够理解并适用于我的情况!谢谢
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>
<div id="1">is123</div>
<script>
if ($("#1").text().trim() === "is123") {
$("#1").addClass('a');
}
</script>
你需要把你的脚本放在元素之后,如果它在元素之前,它找不到元素,因为DOM还没有呈现它。除非您将其包装在"jQuery document ready"函数中。
编辑以反映OP的变化
<div id="1">is123</div>
<script>
if ($("#1").text().trim() === "is123") {
$(".2").removeClass('hidden');
}
</script>
使用此:
$("#1").text()==="is123"
===
表示完全匹配
代码:
<div id="1">is123</div>
<script>
if ($("#1").text()==="is123"){
$("#1").addClass('a');
}
</script>
如果您想在计时器到达某个点时触发事件,可以通过以下几种方法来实现。
示例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>
试试这个
<script>
if ($(#1).text() === "is123";).addClass('a'))
</script>
<div id="1">is123</div>
相关文章:
- 在highcharts.js中向点弹出窗口动态添加文本
- 向d3圆添加文本
- 如何在已经有图标的滚动到顶部按钮中添加文本
- 如何在背景图像上添加文本
- 如何使用javascript在asp.net网页表单上动态添加文本框
- 如何从DIV数组向DIV添加文本
- 我可以通过javascript在鼠标光标旁边动态添加文本吗?
- 如何使用 jQuery 在文本区域中的每一行添加文本
- 单击向输入添加文本值的链接
- 使用.html()添加文本输入时出现意外行为
- 在d3.js中添加文本标签以强制定向图链接
- 当我尝试添加文本效果时,有东西阻止了JavaScript的运行'手风琴'在html文档中
- 在每个条形图的中间添加文本标签&鼠标悬停事件
- 通过在 JavaScript 中使用正文标签的 ID 向
标签添加文本
- JavaScript在段落中的页面加载后添加文本
- eventListner,用于在另一个文本框获得焦点时添加文本框(vanilla-js)
- 如何根据复选框在输入中添加文本
- Bootstrap 3通过点击按钮添加文本并显示在新选项卡中
- 用户动态添加文本框时,文本框中的echo值
- jqueryTe正在添加文本