2011-08-24 202 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