Javascript 如何检测DOM元素的class属性何时更改?
这需要一些解释。我在JWplayer中使用jquery播放列表,它的基本功能是读取playlist.xml文件,并生成如下滚动菜单: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
<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添加到项目中?