innerHTML在jQuery对象上使用时不能正常工作
innerHTML not working properly when used on a jQuery object
这段代码没有按预期工作。它不显示span内的任何文本。它应该显示今天的日子(撰写本文时为星期二)。它也没有正确地添加类"currentDay"在$.each
回调。
$('#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');
}
}
}
});
.innerHTML
没有改变HTML,额外的类没有按预期添加。
<p id="showLess" class="less">
<span class="day">**Tuesday**</span>
</p>
为什么天不亮?
为什么show/hide不工作?
$('.less').on('click', function(e) {
$('#showMore').show();
$('#showLess').hide();
});
$('.more').bind('click', function(e) {
$('#showLess').show();
$('#showMore').hide();
});
你试图在jQuery对象上调用JS属性。
例如innerHTML
你试图在一个jQuery对象上调用它
$('#showLessHours span.day').innerHTML
应该是
$('#showLessHours span.day')[0].innerHTML
或
$('#showLessHours span.day').html(weekday[today]);
在你的each loop
项目是一个JS对象,你正试图使用jQuery添加一个类。首先将其转换为jQuery对象。
item.addClass('currentDay');
item.removeClass('currentDay');
应为
$(item).addClass('currentDay'); or $(this).addClass('currentDay');
$(item).removeClass('currentDay'); or $(this).removeClass('currentDay')
你也可以在回调中使用$(this)
对象而不是$(item)
对象,因为它们都引用相同的对象。
另一个小建议是,当你想在你的应用程序中使用jQuery时,为什么你想要混合使用jQuery和jQuery。
jsFiddle
因为。innerhtml不是jquery函数。您可以使用.html()来实现您想要做的事情。或者,如果你真的想使用。innerhtml,你可以使用。get()来获取实际的DOM元素,然后使用。innerhtml但是…我不推荐。
我相信这个编辑的小提琴解决了你的问题。相关代码:
$('#showLessHours span.day').html(weekday[today]);
//...
if(item.html() != '') {
alert('item.text:' +item.text());
alert('weekday[today]'+item.text().indexOf(weekday[today]));
if(item.html().indexOf(weekday[today])!=-1) {
//...
除了Sushanth所说的,您还试图在javascript对象上调用jQuery方法。
item.addClass
由 应该
$(item).addClass
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作