如何遍历特定div标签中的一组元素?此方法在Angular.js代码的工厂中定义。
<div id="idName">
<span class="className">Monday</span>
<span class="className">Tuesday </span>
</div>
Javascript:
var currentTime = new Date();
var today = currentTime.getDay(); //0-7
var d = new Date();
var weekday = new Array(7);
weekday[0]= "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
$('#idName .className').each(function(index, item) {
if(item.text) //This part never runs
{
if(item.text.indexOf(weekday[today])!=-1) {
item.addClass('currentDay'));
}
else {
item.removeClass('currentDay');
}
}
});
答案 0 :(得分:1)
使用来自weekday []的indexOf,而不是文本项(您想知道日期是否在数组中)。并且在包含星期二的跨度之后你有一个额外的空间(因此它不会被indexOf找到)。试试这个:
<div id="idName">
<span class="className">Monday</span>
<span class="className">Tuesday</span>
</div>
然后按如下方式更新代码(本节中没有变化):
var currentTime = new Date();
var today = currentTime.getDay(); //0-7
var d = new Date();
var weekday = new Array(7);
weekday[0]= "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
addClass / removeClass也不是item(一个dom元素)的函数,而是每个循环中$(item)的函数。
$('#idName .className').each(function(index, item) {
if(item.textContent) //This part never runs
{
if(weekday.indexOf(item.textContent) == today) {
$(item).addClass('currentDay');
}
else {
$(item).removeClass('currentDay');
}
}
});
答案 1 :(得分:0)
$result = mysqli_query($db,"SELECT email from users WHERE email = '$email'");
是方法,而不是属性。使用text
代替.text()
。迭代中的上下文.text
也指每次迭代中的相应元素。你可以用它来创建它的jquery对象。您也可以使用布尔条件this
根据条件添加/删除类:
toggleClass
答案 2 :(得分:0)
循环部分很好,问题是元素没有text
属性。您可能打算使用$(item).text()
。另请注意,item
只是一个DOM元素,而不是jQuery对象。获取该元素的惯用方法是this
,而不是item
(除非您必须使用this
进行其他操作):
$('#idName .className').each(function(index) {
var item = $(this),
text = item.text();
if (text) {
if (text.indexOf(weekday[today]) != -1) {
item.addClass('currentDay');
} else {
item.removeClass('currentDay');
}
}
});
()
行还有一个额外的item.addClass('currentDay');
。
答案 3 :(得分:0)
$("#idName .className")
已经是元素的集合,您可以直接进入.text()
$('#idName .className').text(function(i,v) {
$(this).toggleClass("currentDay", $.trim(v)===weekday[today]);
});
<强> jsBin demo 强>
P.S:
);
。使用开发人员工具,控制台检查错误。 currentTime.getDay()
无法为您提供 0-7 ,但0-6
因为星期日为0
且星期六为{{ 1}} 强> 6
数组可以定义为weekday
var weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
删除不需要的包装空格答案 4 :(得分:-1)
我会在你的if语句中检查item.innerHTML而不是item.text