Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript innerHTML在jQuery对象上使用时工作不正常_Javascript_Jquery_Innerhtml - Fatal编程技术网

Javascript innerHTML在jQuery对象上使用时工作不正常

Javascript innerHTML在jQuery对象上使用时工作不正常,javascript,jquery,innerhtml,Javascript,Jquery,Innerhtml,代码未按预期工作。它没有显示span.day中的任何文本,在撰写本文时,它应该显示今天的星期二。它也没有正确地将类currentDay添加到$each回调中 $('#showLess span.day').innerHTML=weekday[today]; $.each($('#showMore p span.day'), function(index, item) { if(typeof item.innerHTML != 'undefined') {

代码未按预期工作。它没有显示span.day中的任何文本,在撰写本文时,它应该显示今天的星期二。它也没有正确地将类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>

您正试图在jQuery对象上调用JS属性

例如innerHTML

您正试图在jQuery对象上调用它

$('#showLessHours span.day').innerHTML
应该是

$('#showLessHours span.day')[0].innerHTML

在每个循环项中都有一个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并希望在应用程序中使用它时,为什么要混合使用vanilla JS和jQuery


您正试图在jQuery对象上调用JS属性

例如innerHTML

您正试图在jQuery对象上调用它

$('#showLessHours span.day').innerHTML
应该是

$('#showLessHours span.day')[0].innerHTML

在每个循环项中都有一个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并希望在应用程序中使用它时,为什么要混合使用vanilla JS和jQuery


除了Sushanth所说的,您还尝试在javascript对象上调用jQuery方法

item.addClass
应该

$(item).addClass

除了Sushanth所说的,您还尝试在javascript对象上调用jQuery方法

item.addClass
应该

$(item).addClass

因为.innerHTML不是jquery函数。你可以用它来实现你想做的事情。或者,如果您真的想使用.innerHTML,您可以使用来获取实际的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) {
//...

因为.innerHTML不是jquery函数。你可以用它来实现你想做的事情。或者,如果您真的想使用.innerHTML,您可以使用来获取实际的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) {
//...

小提琴不错,但在这里张贴代码。@Amy我会检查:小提琴不错,但在这里张贴代码。@Amy我会检查:为什么p既有

显示较少的类,又有显示较多的类。它会触发这两个事件。出于某种原因,这对我仍然不起作用。我照样复制了代码,它可以在Fiddle/Separate页面中工作,但在Angular.js中尝试将其添加到工厂/服务时却不行……我应该将其放在document.onReady或window.onload中吗?为什么p既有

显示较少的类,又有更多的类。它会触发这两个事件。出于某种原因,这对我仍然不起作用。我照样复制了代码,它可以在Fiddle/Separate页面中工作,但在Angular.js中尝试将其添加到工厂/服务时却不行……我应该将其放在document.onReady还是window.onLoad中