2013-04-03 37 views
-1

我知道如果我有一个类名(带空格),例如带有破折号和类名空格的jQuery选择器

my classname 

我可以创建一个类选择有:

.my.classname 

但是,我怎么能如果我有空间之间的破折号像这样创建一个类选择:

My - Classname and Others 

或者这样:

My - Clasname 

Th提示的anks。

+0

但是,为什么要创建这样的classNames? – undefined

+0

对于特定的应用程序,这是一个简短的标题。可能吗?谢谢。 –

+0

您的第一个选择器选择最后一个示例,您不必在选择器中使用所有类名称。 – undefined

回答

0

为什么不能简单地转换标题My - Classname.my.classname

LIVE DEMO

var title = "Properties Listing - 3 Per Page"; 
var toClass = '.'+ title.replace(/-/g, '').replace(/\s{1,}/g, '.').toLowerCase() ; 

alert(toClass); // .properties.listing.3.per.page 
0

有没有从第一种情况的差异,除了你的元素将有3类:My-Classname 。所以,你只需做同样的选择:

$(".my.-.classname") 
+0

hhhhhmmmm http://jsbin.com/enazek/1 /编辑 –

+0

我甚至有复杂的类名称,如属性列表 - 每页3个,所以选择器将:.Properties.Listing .-。3.Per.Page,我试着运行它,它不起作用。 –

+0

@roXon我认为空间是唯一有效的类,当你有另一个类名称的那个元素http://jsfiddle.net/TnBLf/ – Eli

0

可以使用attribute selector用于此目的。

$('[class="My - Clasname"]') 

注:My - Classname and Others不是单一类是5类My-ClassnameandOthers的混合。

+0

...其中'-'(作为独立的)不是有效的className,因此答案是有效的(?) –

+0

@roXon对不起,错过了那一点,任何方式,我认为选择器将工作 –

+0

我认为它会,但无论如何...应避免不语义,勘误容易和所有可能的条款,你可以发明:) –