[英]How can I use a checkbox to modify an HREF?
我正在制作一個帶有用戶首選項復選框的圖像庫,該復選框會在單擊縮略圖時顯示大尺寸或超大尺寸的圖像。 我在頁面上有一個如下所示的表單元素:
<input type="checkbox" name="targetbox" id="pref"
onclick="supersize(this.checked);">
<label for="pref">Supersize Pics</label>
我也有這樣的鏈接和縮略圖:
<a href="images/large/image1.jpg"><img src="images/thumbs/image1.jpg" /></a>
給我帶來麻煩的部分是JavaScript。 到目前為止,這是我能夠完成的工作:
<script language="JavaScript">
function supersize(checkme) {
if (checkme)
where = "images/super/";
else
where = "images/large/";
for (var i=0; i<=(document.links.length-1); i++) {
document.links[i].href = where;
}
}
</script>
這將替換鏈接,但不會替換我的需要方式。 顯然,這將替換整個href
,並且我需要保留“ image1.jpg”,因此新鏈接將類似於:“ images / super / image1.jpg”。 我確定我需要使用數組或將網址分為兩部分。 那就是我難以弄清的部分。 任何幫助,將不勝感激。
如果知道最后一個值,則可以使用replace()
:
document.links[i].href = document.links[i].href.replace("last/value/goes/here/", where);
試試這個功能。
hrefLink.lastIndexOf('/')+ 1獲取最后一個“ /”的位置,.substr()獲取圖像名稱,該名稱以后可以附加到任何您想要的名稱上!
<script language="JavaScript">
function supersize(checkme) {
if (checkme)
where = "images/super/";
else
where = "images/large/";
for (var i=0; i<=(document.links.length-1); i++) {
hrefLink = document.links[i].href;
imgName = hrefLink.substr(hrefLink.lastIndexOf('/')+1);
document.links[i].href = where+imgName;
}
}
</script>
這樣,在您的上下文中,我們使函數獨立於諸如“ super”和“ large”之類的硬編碼單詞。
干杯,哈莎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.