2012-06-11 34 views
0

我在IE,Chrome和Firefox中測試了以下代碼,並且它們在任何一箇中都不起作用。我已經閱讀了幾個有關類似問題的問題,但他們沒有提供解決方案來解決我的例子。內部HTML if語句不識別div標記

我想創建一個與JWplayer接口的暫停/播放按鈕(我也希望它與流水遊戲接口,一旦我得到按鈕工作),並且圖像將根據當前存在的圖像而改變。我還有一個停止按鈕,可以完全停止播放器並將暫停/播放按鈕的圖像更改爲暫停。

這裏是我當前的代碼:

<script type="text/javascript"> 
function changeimg() 
{ 
    var obj = document.getElementById('image1'); 
    var imgtag1 = '<img src=\'PLAY.png\'>'; 
    var imgtag2 = '<img src=\'PAUSE.png\'>'; 
    if(obj.innerHTML == imgtag2) 
    {obj.innerHTML = imgtag1;} 
    else 
    {obj.innerHTML = imgtag2;} 
    return; 
} 

function playimg() 
{ 
    document.getElementById('image1').innerHTML = '<img src=\'PLAY.png\'>'; 
    return; 
} 

</script> 

<div id="image1" href="#" onclick="changeimg(); jwplayer('mediaspace1').play(); jwplayer('mediaspace2').play(); jwplayer('mediaspace3').play(); jwplayer('mediaspace4').play();"><img src='PLAY.png'></div> 
<div href="#" onclick="playimg(); jwplayer('mediaspace1').stop(); jwplayer('mediaspace2').stop(); jwplayer('mediaspace3').stop(); jwplayer('mediaspace4').stop();"><img src='STOP.png'></div> 

播放/暫停功能的工作原理,以及第一個div將變爲暫停IMG(這樣的JavaScript正在經歷),它會改回入遊戲,我點擊第二個div(停止功能 - 觸發playimg()),但如果再次點擊暫停按鈕,它不會變回播放圖像。

出於安全原因,我不能鏈接的網站,但任何幫助,將不勝感激

+0

瀏覽器可以有時添加空格;您可能想在比較之前嘗試.trim() - html。 – machineghost

回答

0

它看起來像你真的想改變的是IMG標籤的SRC,而不一定是整個的innerHTML。正如機器人在他的評論中提到的那樣,可能會添加空白或對完整HTML進行其他更改,這可能會使您的比較成爲錯誤。

但是,您可以檢查是否obj.src ==「PLAY.png」並直接設置SRC屬性。事情是這樣的:

function changeimg() 
{ 
    var obj = document.getElementById('image1'); 
    var img1 = 'PLAY.png'; 
    var img2 = 'PAUSE.png'; 
    if(obj.src == img2) 
    {obj.src = img1;} 
    else 
    {obj.src = img2;} 
    return; 
} 
+0

我改變它以影響obj.src(嘗試將image1作爲img標記的id或div標記),它的行爲方式完全相同 - 它將播放按鈕更改爲暫停按鈕,但不會再回來。 – user1394399

+0

找到它了,我正在試驗並打印.src文件,它返回的是整個網址http://mysite.com/site/PLAY.png,而不僅僅是暫停/播放。感謝關於src的提示! – user1394399

0

我覺得要更換changeimg()的innerHTML是影響整個OBJ元素,這是一個div。因此,if(obj.innerHTML == imgtag2)將返回false,因爲div innerhtml不是imgtag2,但下次打算撥打changeimg()時,「obj」將會因爲您用不含id的HTML代碼替換其innerhtml而被定義爲:{obj.innerHTML = imgtag2;}

檢查控制檯,看是否有任何JavaScript錯誤,這是它應該在if(obj.innerHTML == imgtag2)

RGDS。

0

只是檢查是否PLAY存在或不存在,然後根據它改變的innerHTML

function changeimg() 
{ 
    var obj = document.getElementById('image1'); 
    var imgtag1 = '<img src=\'PLAY.png\'>'; 
    var imgtag2 = '<img src=\'PAUSE.png\'>'; 
    if(obj.innerHTML.indexOf('PLAY') != -1) 
    {obj.innerHTML = imgtag2;} 
    else 
    {obj.innerHTML = imgtag1;} 
    return; 
}