如何用jQuery获取href属性

发布于 2024-11-10 11:11:21 字数 900 浏览 6 评论 0原文

我如何才能获取已被母版页修改的 asp:LinkBut​​ton 的 ID,以便我可以使用 javascript/jQuery 模拟单击​​?

通常,通过这个,我会获得“ctl05_butSaveAssociation”作为“_id”的值:

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

这不起作用,因为 ID 由于某种原因再次更改,正如我们可以看到使用 FireBug 并将鼠标悬停在 asp:LinkBut​​ton 上:

<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 动态实现这个?

How would I be able to obtain the ID of a asp:LinkButton that has been modified by the master page so that I can simulate a click using javascript/jQuery ?

Normally, with this, I would obtain 'ctl05_butSaveAssociation' as the value for '_id':

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

This doesn't work, because the ID changes again for some reason, as we can see using FireBug and hovering over the asp:LinkButton we have:

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

So in fact, if I hardcode the right ID, it works with:

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

How could I implement this dynamically using jQuery?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蘸点软妹酱 2024-11-17 11:11:21

虽然 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;
}

While the HTML generated ids have _ (because are genereted based on the ClientID property), the ASP.NET helper methods expects $. I really don't know exactly why it can't use the underscore on all cases, but this is it...

One easy thing is just using replace like _id.replace("_", "$"). Complete code:

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

But I'm here thinking... Why you just isn't calling the click event?

function ClickSaveButton() {
    $('a[id$="butSaveAssociation"]').click();
    return false;
}
蔚蓝源自深海 2024-11-17 11:11:21

一种方法是在其周围放置一个。像这样的东西:

<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 发生变化,它也会给你一种识别按钮的方法。

One way would be to place a <span> around it. Something like this:

<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>

And then in you jQuery

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

That would give you a way to identify the button even if it's id changes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文