2016-12-29 84 views
0

我想用按鈕click.When我點擊播放按鈕,需要改變autoplay=0 to autoplay=1更換指定的URL的一部分的查詢字符串,當我點擊關閉按鈕後,有變更autoplay=1 to autoplay=0更改使用正則表達式

jQuery(document).ready(function($) { 
 
    $('.playButton').click(function() { 
 
    alert('play'); 
 
    $("iframe").src = src.replace(/\&autoplay\=\d/, "&autoplay=" + 1); 
 
    }); 
 

 
    $(".close_icon").click(function() { 
 
    alert('close'); 
 
    $("iframe").src = src.replace(/\&autoplay\=\d/, "&autoplay=" + 0); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<iframe src="https://www.youtube.com/embed/C0DPdy98e4c?width=640&autoplay=1"></iframe> 
 
<div class="playButton">Play</div> 
 
<div class="close_icon">Close</div>

+1

使用'ATTR()'改變iframe的'src'屬性。 '$('iframe')。attr('src',function(i,oldSrc){return oldSrc.replace('autoplay = 0','autoplay = 1');});' – Tushar

+0

@tushar你的帖子正在工作fine.Please再次張貼 – user3386779

+1

這是[完整代碼(https://jsfiddle.net/tusharj/vqzkn1gp/) – Tushar

回答

2

您不需要RegEx。可以完成字符串替換。

$("iframe").src將不會設置src屬性iframe的屬性值。使用attr()更改元素的屬性。

jQuery(document).ready(function($) { 
 
    $('.playButton').click(function() { 
 
    $("iframe").attr('src', function(i, oldSrc) { 
 
     if (oldSrc.indexOf('autoplay') === -1) { 
 
     // If autoplay is not on URL, add it 
 
     oldSrc += '&autoplay=1'; 
 
     } 
 

 
     return oldSrc.replace('autoplay=0', 'autoplay=1'); 
 
    }); 
 
    }); 
 

 
    $(".close_icon").click(function() { 
 
    $("iframe").attr('src', function(i, oldSrc) { 
 
     return oldSrc.replace('autoplay=1', 'autoplay=0'); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<iframe src="https://www.youtube.com/embed/C0DPdy98e4c?width=640"></iframe> 
 
<div class="playButton">Play</div> 
 
<div class="close_icon">Close</div>


的代碼可以作爲DRY'd遵循

jQuery(document).ready(function($) { 
    // To update the value of autoplay in the URL of iframe src attribute 
    var changeAutoplay = function(newValue) { 
     $('iframe').attr('src', function(i, oldSrc) { 
      return oldSrc.replace(/autoplay=\d/, 'autoplay=' + newValue); 
     }); 
    }; 

    $('.playButton').click(function() { 
     changeAutoplay(1); 
    }); 

    $(".close_icon").click(function() { 
     changeAutoplay(0); 
    }); 
}); 
+0

我需要檢查自動播放在src中,然後附加 – user3386779

+0

@ user3386779要檢查一個字符串是否存在於其他字符串中,可以使用'indexOf()'。在你的情況下,你也可以使用'/autoplay=\d/.test(url)' – Tushar

+0

你可以請更新你的小提琴請 – user3386779

1

正如您所見,控制檯Uncaught ReferenceError: src is not defined存在錯誤,這意味着您嘗試使用不存在的屬性,請嘗試:

$("iframe").attr("src", function(index, value){ return value.replace("autoplay=0", "autoplay=1") }) 

閱讀更多關於attr方法here