2012-07-23 115 views
-4

我试图解决别人的代码,我有这样的线贯穿我的JavaScript -获取客户端ID在J​​avaScript

var dataDiv = document.getElementById("ctl00_cpMain_tcMainTabs_tResBDetails_tcDetailTabs_tBDetail_bmrDetailDataDiv") 

什么是首选语法?

仅供参考,这是一个支持jQuery的Web应用程序。

+2

问题是什么? – Austin 2012-07-23 13:31:08

+0

我的理解是不应该以这种方式引用控件,并使用完全限定名称。我应该不能单独引用bmrDetailDataDiv? – duckmike 2012-07-23 13:34:29

+0

该ID有点冗长,但没有什么可以“修复”......它应该可以正常工作。 – Christoph 2012-07-23 13:34:33

回答

0

我们曾经使用却成了多余的,当我们搬到了MVC一个诀窍是这样的,当你使用jquery以及

var datadiv = '#<%= bmrDetailDataDiv.ClientID %>' 

然后你可以使用jQuery称其为

$(datadiv) 
容易

,或者如果你不需要其他任何地方使用它在页面上简化为

$('#<%= bmrDetailDataDiv.ClientID %>') 

你可以使用一个匹配的标识符,但个人我不认为它是如此优雅

$("div[id$='_bmrDetailDataDiv']"); 
+0

谢谢!这是我正在寻找的。 – duckmike 2012-07-23 13:50:04

0

我走出一个肢体,猜测这是一个ASP.NET应用程序?这看起来像服务器端生成的客户端ID。

你可以尝试的东西,如替换它:

var dataDiv = document.GetElementById("<%: [serverSideControlId].ClientID %>"); 

例如

var dataDiv = document.GetElementById("<%: Button1.ClientID %>"); 

,或者,如果使用jQuery:

var dataDiv = $("#<%: Button1.ClientID %>")[0]; 
+0

添加var dataDiv = $(“#<%:Button1.ClientID%>”)[0];直接在javascript代码中? – duckmike 2012-07-23 13:48:55

+0

我会这么猜。只要这个javaScript在找到该控件的同一页上运行。 – tobias86 2012-07-23 13:50:09