我想在一些文本字段中添加一堆类,这样我就可以用jquery获取它们的值。这似乎是使用jQuery时的标准做法,而this post建议将其作为答案,但这会如何影响页面加载?它不会试图找到所有这些类吗?我过去曾被告知要尽量减少控件上使用的类数量。
我有大约12个控件,我想要添加唯一的类来获取它们的价值。我正在使用asp.net所以我不能使用id。我也不能使用ClientID,因为控件在表中(但任何时候都只显示一组控件)。
e.g。
<asp:TextBox ID="txtValue1" runat="server" CssClass="value1" Text='value1' />
<asp:TextBox ID="txtValue2" runat="server" CssClass="value2" Text='value2' />
<asp:TextBox ID="txtValue3" runat="server" CssClass="value3" Text='value3' />
...
var value1 = $('.value1').val();
var value2 = $('.value2').val();
var value3 = $('.value3').val();
css中不存在任何类名。
由于
修改:
我知道这有效,但我对它对页面加载的影响更加好奇。有一个答案(现在似乎被删除)说像html解析器之类的东西忽略了类。 css解析器只会查看已定义的类。所以听起来它会被完全忽略并且对页面加载没有影响。这是对的吗?
答案 0 :(得分:2)
可以使用不存在的CSS类,但如果它们是唯一的,则要使用id
,而不是class
。
答案 1 :(得分:0)
我不认为这是一个问题。我唯一一次遇到不存在的类或ID的问题是有一次我有一个onclick引用不存在的ID。事情搞砸了......除此之外,我认为课程是非常无害的。我有兴趣知道..
还有其他想法吗?
答案 2 :(得分:0)
您使用的是哪个版本的asp.net?在asp.net 4.0中,您可以使用未编码的ID。看起来最简单的解决方案是设置ClientIDMode =&#34; Static&#34;到你的所有文本框,然后通过id引用。否则,当然,我已经创建了一些不存在的课程,以便随时引用。
编辑:(响应您对效果页面加载的评论)。
我认为你关于在目前没有使用的div中增加额外课程的问题并不是一个坏问题(至少在理论意义上),老实说,我不知道确切的答案。我相信任何影响都是微不足道的。如果您考虑编写html的最佳实践,那么在编写CSS之前,通常使用它的类来编写和构造HTML。这意味着在您编写CSS时,肯定会使用某些类。实际上,在对基本标记(body
,h1
,a
等)进行样式化后,您可能会发现您永远不需要为某些特定设计创建具有这些类的选择器。然而,对于下一个设计,您可能需要这些类。我非常确定CSS背后的技术是基于这些场景而构建的,我打赌数百万,如果不是数十亿的互联网页面遵循这个确切的情况,特别是如果他们使用类似Modernizr的东西,它将类添加到页面的html元素中,作为为您提供的类,您可以根据当前浏览器的可能功能进行选择。你可能永远不需要那些课程,但如果你需要它们,它们就在那里。
答案 3 :(得分:0)
您说您正在使用ASP.Net,因此您无法使用ID参数,但您可以。在JQuery中,您可以使用下面的
来获取控件var value1 = $('[ID$=yourID]').val();
有关JQuery选择器的更多信息,请查看:JQuery Selectors和Attribute Ends With Selector
上面的选择器基本上在“yourID”中找到了id ENDING,因此忽略了所有的masterpages额外的文本。你必须确保它们是独一无二的。例如没有像“HSBC”和“SBC”这样的ID,因为“SBC”上面的选择器都会找到它们。