如何解决如何使用jQuery获得href属性
| 我将如何获得已由母版页修改的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为ѭ3(因为是基于
ClientID
属性生成的),但ASP.NET帮助器方法的预期值为$
。我真的不知道为什么它不能在所有情况下都使用下划线,但这就是...
一件简单的事情就是使用_id.replace(\"_\",\"$\")
之类的replace。完整的代码:
function ClickSaveButton() {
var _id = $(\'a[id$=\"butSaveAssociation\"]\').attr(\"id\");
__doPostBack(_id.replace(\"_\",\"$\"),\'\');
return false;
}
但是我在这里思考...为什么您不调用click事件呢?
function ClickSaveButton() {
$(\'a[id$=\"butSaveAssociation\"]\').click();
return false;
}
,一种方法是在其周围放一个9英镑。像这样:
<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或更高版本,则可以使用ѭ12来使ID保持与您键入的ID相同:
http://beyondrelational.com/blogs/hima/archive/2010/07/16/all-about-client-id-mode-in-asp-net-4.aspx
http://www.west-wind.com/weblog/posts/2009/Nov/07/ClientIDMode-in-ASPNET-40
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。