簡體   English   中英

如何使用 jQuery 獲取 href 屬性

[英]How to obtain href attribute with jQuery

我如何能夠獲取已被母版頁修改的 asp:LinkButton 的 ID,以便我可以使用 javascript/jQuery 模擬點擊?

通常,有了這個,我會獲得 'ctl05_butSaveAssociation' 作為 '_id' 的值:

function ClickSaveButton() {
        var _id = $('a[id$="butSaveAssociation"]').attr("ID");           
        __doPostBack(_id, '');
        return false;
    }

這不起作用,因為 ID 出於某種原因再次更改,正如我們使用 FireBug 並將鼠標懸停在我們擁有的 asp:LinkButton 上看到的那樣:

<a style="border-style: none; display: inline-block;" href="javascript:__doPostBack('ctl05$butSaveAssociation','')" class="CommandButton" id="ctl05_butSaveAssociation" onclick="SaveAssociation();" tabindex="0">Save</a>

所以事實上,如果我對正確的 ID 進行硬編碼,它適用於:

function ClickSaveButton() {
        var _id = "ctl05$butSaveAssociation";       // hardcoded
        __doPostBack(_id, '');
        return false;
    }

我如何使用 jQuery 動態實現這一點?

雖然 HTML 生成的 id 具有_ (因為是根據ClientID屬性生成的),但 ASP.NET 輔助方法需要$ 我真的不知道為什么它不能在所有情況下都使用下划線,但就是這樣......

一件簡單的事情就是使用像_id.replace("_", "$")這樣的替換。 完整代碼:

function ClickSaveButton() {
    var _id = $('a[id$="butSaveAssociation"]').attr("id");
    __doPostBack(_id.replace("_", "$"), '');
    return false;
}

但我在這里想......為什么你只是不調用點擊事件?

function ClickSaveButton() {
    $('a[id$="butSaveAssociation"]').click();
    return false;
}

一種方法是在它周圍放置一個<span> 像這樣的東西:

<span id="button">
   <a style="border-style: none; display: inline-block;" href="javascript:__doPostBack('ctl05$butSaveAssociation','')" class="CommandButton" id="ctl05_butSaveAssociation" onclick="SaveAssociation();" tabindex="0">Save</a>
</span>

然后在你 jQuery

var id = $('span[id="button"]').children().attr('id');

這將為您提供一種識別按鈕的方法,即使它的 id 發生變化。

如果您使用的是 ASP.NET 4 或更高版本,則可以使用ClientIDMode使 ID 與您鍵入的 ID 保持一致:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM