Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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 如何检测DOM元素的class属性何时更改?_Javascript_Html_Selection - Fatal编程技术网

Javascript 如何检测DOM元素的class属性何时更改?

Javascript 如何检测DOM元素的class属性何时更改?,javascript,html,selection,Javascript,Html,Selection,这需要一些解释。我在JWplayer中使用jquery播放列表,它的基本功能是读取playlist.xml文件,并生成如下滚动菜单: <div class="jw_playlist_playlist"> <div class="jw_playlist_item even"> <div class="jw_playlist_title">Title</div> <div class="jw_playlist_des

这需要一些解释。我在JWplayer中使用jquery播放列表,它的基本功能是读取playlist.xml文件,并生成如下滚动菜单:

<div class="jw_playlist_playlist">
   <div class="jw_playlist_item even">
      <div class="jw_playlist_title">Title</div>
      <div class="jw_playlist_description"></div>
   </div>
   <div class="jw_playlist_item odd">
      <div class="jw_playlist_title">Title2</div>
      <div class="jw_playlist_description"></div>
   </div>
</div>

标题
标题2

当选择一个项目时,它会变为
。有没有一种方法可以用javascript检测这种变化,并提取标题?

我想你可以用javascript创建一个计时器,每隔X秒检查一次元素是否存在

<script> 

var title = ""; 

$(function() { // wait till page is loaded

    // sets a timer to repeat the function every 1 second
    setInterval(function() { 
        // if .play class div exists, take the title of the song
        if ($(".play").length > 0) { 
            title = $(".play jw_playlist_title").html();
            updateData();
        } else { 
        // otherwise set the title to be empty
            title = ""; 
        } 
     }, 1000); 

});

function updateData() {
    $("#demo").html("Current Song: "+title);
}


 </script> 

 <p id="demo">My First Paragraph</p>

var title=“”;
$(函数(){//等待页面加载
//设置计时器,以每1秒重复一次该功能
setInterval(函数(){
//如果存在.play类div,则使用歌曲的标题
如果($(“.play”).length>0{
title=$(“.play jw_playlist_title”).html();
更新数据();
}否则{
//否则,将标题设置为空
title=“”;
} 
}, 1000); 
});
函数updateData(){
$(“#demo”).html(“当前歌曲:+标题);
}

我的第一段


没有任何明智的方法来检测DOM的更改。DOM mutation events]()已被弃用,其支持是脆弱的(值得注意的是,属性变异不适用于属性修改,即您需要的东西),后续API()只适用于Chrome和FF。我会查看playlist插件的文档,看看它在选择某个项目时是否会触发自定义事件。我对如何使用它有点困惑。只需将此计时器连接到javascript,变量
title
将包含当前播放歌曲的标题。当歌曲被改变时,它就会改变。另外,你需要jQuery。对不起,我对javascript非常不满意。这是输出它的正确方式吗<代码>var title=“”;setTimeout(函数(){if($(“.play”).length>0{title=$(“.play jw_playlist_title”).html()//或stuff//}否则{title=”“},1000);document.getElementById(“demo”).innerHTML=title

我的第一段不起作用。事实上,你是从哪里得到“游戏”的?标题为playing的div外的div表示playing,但它在奇数和偶数之间交替。您说过它会变为

,正如您看到的,有一个class标签
playing
。您是否已将jQuery添加到项目中?