2011-08-24 77 views
2

特定的CSS属性我有这样的asp.net标签。由于它是一个服务器控件,我想存储一些自定义信息,因此我将它存储为css样式。这个想法是浏览器不会理解这个属性,所以它会忽略,而如果我直接把它作为一些内置的属性,它会抛出编译时错误。这是我的代码:获取从样式属性

<asp:Label runat="server" id="sample" style="fakeStyle:someValue" /> 

如何使用Jquery得到fakeStyle的值?

+0

Ÿ不要ü尝试使用隐藏域这样做! – sandeep

回答

2

不要这样做。使用自定义属性来代替:

<asp:Label runat="server" id="sample" fake_attribute="somevalue" /> 

然后阅读这样的:

var myVal = $("#<%=sample.ClientID%>").attr("fake_attribute"); 

为了记录在案,你可以有这样的代码读取CSS值:

var myVal = $("#<%=sample.ClientID%>").css("fakeStyle"); 

但是就像我说,拥有无效的CSS不是一个好主意。

+0

这工作。哇。太好了!没想到这个工作,所以甚至没有尝试。我认为它会抛出编译时或运行时错误;) – Jaggu

+0

ASP.NET并不完全哑..它只会引发任何非预定属性(例如定制属性)输出到浏览器,是不需要任何解析,将它们添加到生成标签。 :) –

2

请不要这样做。这是非常可怕的。

您可以改为使用数据属性。让jQuery使用HTM5ish数据属性,这些属性可以在大多数浏览器上使用。

<asp:Label runat="server" id="sample" data-something="my data" /> 

jQuery: 

alert($("#sample").data("something")); 

http://api.jquery.com/data/

+0

+1优雅的解决方案,但我们仍然有一段时间(一年?)之前,HTML5是由世界各地的活动浏览器95%的人支持。 –

+0

@Shadow:那是真的。也许这就是为什么只有我将你的答案标记为有效。但是+1 karim79 – Jaggu

+0

@Shadow向导 - 我同意,但由于这两种解决方案都大约相同数量的努力来实现,你会不会喜欢一个这已经是面向未来的? – karim79