<a href="shareKnowlege.html?id=$("#hidden").val()"
target="f4" class="STYLE9" id="knowshare">知識分享</a>
問題:頁面加載時$("#hidden").val()執行一次,若隱藏域值後續變化,href不會更新。
<a href="shareKnowlege.html"
onclick="this.href='shareKnowlege.html?id='+$('#hidden').val()"
target="f4" class="STYLE9" id="knowshare">知識分享</a>
| 方式 | 執行時機 | 值獲取 | 適用場景 |
|---|---|---|---|
| 內聯表達式 | 頁面渲染時 | 靜態快照 | 固定參數 |
| onclick動態構建 | 點擊瞬間 | 實時值 | 動態參數 |
| 事件委託 | 點擊瞬間 | 實時值 | 動態生成元素 |
// HTML
<a href="shareKnowlege.html" id="knowshare"
data-target="f4" class="STYLE9">知識分享</a>
// JS (推薦寫法)
$('#knowshare').on('click', function(e) {
var hiddenVal = $('#hidden').val();
if (!hiddenVal) {
alert('請先填寫必要信息');
e.preventDefault();
return;
}
this.href = 'shareKnowlege.html?id=' + encodeURIComponent(hiddenVal);
});
encodeURIComponent():防止特殊字符破壞URLe.preventDefault():攔截默認跳轉,驗證後手動location.hrefdata-*屬性存儲基礎URL,JS拼接參數記住:href屬性值在頁面加載時確定,動態參數要在交互事件中構建。