Los*_*der 1 javascript jquery innerhtml
此代码无法正常工作。它没有在span.day内显示任何文本,而应该在今天(显示本文的星期二)显示该文本。它还没有在$.each回调中正确添加类“ currentDay” 。
$('#showLess span.day').innerHTML=weekday[today];
$.each($('#showMore p span.day'), function(index, item) {
if(typeof item.innerHTML != 'undefined')
{
alert('item.text:' +item.innerHTML);
alert('weekday[today]'+item.innerHTML.indexOf(weekday[today]));
if(item.innerHTML.indexOf(weekday[today])!=-1) {
alert("check which element has added class currentDay:");
item.addClass('currentDay');
}else{
if(item.hasClass('currentDay')) {
item.removeClass('currentDay');
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
.innerHTML 未更改HTML,未按预期添加其他类。
<p id="showLess" class="less">
<span class="day">**Tuesday**</span>
</p>
Run Code Online (Sandbox Code Playgroud)
为什么没有显示一天?
为什么显示/隐藏不起作用?
$('.less').on('click', function(e) {
$('#showMore').show();
$('#showLess').hide();
});
$('.more').bind('click', function(e) {
$('#showLess').show();
$('#showMore').hide();
});
Run Code Online (Sandbox Code Playgroud)
您正在尝试在jQuery对象上调用JS属性。
例如 innerHTML
您正在尝试在jQuery对象上调用它。
$('#showLessHours span.day').innerHTML
Run Code Online (Sandbox Code Playgroud)
应该
$('#showLessHours span.day')[0].innerHTML
Run Code Online (Sandbox Code Playgroud)
要么
$('#showLessHours span.day').html(weekday[today]);
Run Code Online (Sandbox Code Playgroud)
并且在您的each loop 项目中有一个JS对象,您正在尝试使用jQuery添加一个类。首先将其转换为jQuery对象。
item.addClass('currentDay');
item.removeClass('currentDay');
Run Code Online (Sandbox Code Playgroud)
应该
$(item).addClass('currentDay'); or $(this).addClass('currentDay');
$(item).removeClass('currentDay'); or $(this).removeClass('currentDay')
Run Code Online (Sandbox Code Playgroud)
相反,您可以在回调中使用$(this)代替$(item)对象,因为它们都引用相同的对象。
另一个小建议是,为什么要在包含jQuery的情况下混合使用普通JS和jQuery,并希望在应用程序中使用它们。
| 归档时间: |
|
| 查看次数: |
480 次 |
| 最近记录: |