javascript - Getting an element by its CSS class name starting with a dot -
i had rename css class used start #
sign dot handled extjs
framework properly.
that jquery script used work fine until made change, whines cannot find element.
i'm not used jquery, question is supposed work?
$('.x-panel-body-cssmenu li.has-sub>a').on('click', function(){ //some code errors out because .x-panel-body-cssmenu can't found apparently... });
this html in question:
<div class="x-panel x-border-item x-box-item x-panel-cssmenu" style="height: 441px; right: auto; left: 0px; top: 100px; margin: 0px; width: 200px;" id="navigationmenu-1011"> <div id="navigationmenu-1011-body" class="x-panel-body x-panel-body-cssmenu x-layout-fit x-panel-body-cssmenu" style="height: 441px; left: 0px; top: 0px; width: 200px;"> <ul> <li class="active"><a href="#"><span>home</span></a></li> <li class="has-sub"><a href="#"><span>eligibility list</span></a> <ul> <li><a href="#"><span>view/manage list</span></a></li> <li><a href="#"><span>add employee</span></a></li> </ul> </li> <li><a href="#"><span>cases</span></a></li> <li class="last"><a href="#"><span>documents</span></a></li> </ul> </div> </div>
and css (.x-panel-body-cssmenu
used called #cssmenu
:
.x-panel-body-cssmenu, .x-panel-body-cssmenu ul, .x-panel-body-cssmenu ul li, .x-panel-body-cssmenu ul li { margin: 0; padding: 0; border: 0; list-style: none; line-height: 1; display: block; position: relative; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .x-panel-body-cssmenu { width: 200px; font-family: helvetica, arial, sans-serif; color: #ffffff; float: left; } .x-panel-body-cssmenu ul ul { display: none; } .align-right { float: right; } .x-panel-body-cssmenu > ul > li > { padding: 15px 20px; border-left: 1px solid #1682ba; border-right: 1px solid #1682ba; border-top: 1px solid #1682ba; cursor: pointer; z-index: 2; font-size: 14px; font-weight: bold; text-decoration: none; color: #ffffff; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.35); background: #36aae7; background: -webkit-linear-gradient(#36aae7, #1fa0e4); background: -moz-linear-gradient(#36aae7, #1fa0e4); background: -o-linear-gradient(#36aae7, #1fa0e4); background: -ms-linear-gradient(#36aae7, #1fa0e4); background: linear-gradient(#36aae7, #1fa0e4); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15); } .x-panel-body-cssmenu > ul > li > a:hover, .x-panel-body-cssmenu > ul > li.active > a, .x-panel-body-cssmenu > ul > li.open > { color: #eeeeee; background: #1fa0e4; background: -webkit-linear-gradient(#1fa0e4, #1992d1); background: -moz-linear-gradient(#1fa0e4, #1992d1); background: -o-linear-gradient(#1fa0e4, #1992d1); background: -ms-linear-gradient(#1fa0e4, #1992d1); background: linear-gradient(#1fa0e4, #1992d1); } .x-panel-body-cssmenu > ul > li.open > { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.15); border-bottom: 1px solid #1682ba; } .x-panel-body-cssmenu > ul > li:last-child > a, .x-panel-body-cssmenu > ul > li.last > { border-bottom: 1px solid #1682ba; } .holder { width: 0; height: 0; position: absolute; top: 0; right: 0; } .holder::after, .holder::before { display: block; position: absolute; content: ''; width: 6px; height: 6px; right: 20px; z-index: 10; -webkit-transform: rotate(-135deg); -moz-transform: rotate(-135deg); -ms-transform: rotate(-135deg); -o-transform: rotate(-135deg); transform: rotate(-135deg); } .holder::after { top: 17px; border-top: 2px solid #ffffff; border-left: 2px solid #ffffff; } .x-panel-body-cssmenu > ul > li > a:hover > span::after, .x-panel-body-cssmenu > ul > li.active > > span::after, .x-panel-body-cssmenu > ul > li.open > > span::after { border-color: #eeeeee; } .holder::before { top: 18px; border-top: 2px solid; border-left: 2px solid; border-top-color: inherit; border-left-color: inherit; } .x-panel-body-cssmenu ul ul li { cursor: pointer; border-bottom: 1px solid #32373e; border-left: 1px solid #32373e; border-right: 1px solid #32373e; padding: 10px 20px; z-index: 1; text-decoration: none; font-size: 13px; color: #eeeeee; background: #49505a; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); } .x-panel-body-cssmenu ul ul li:hover > a, .x-panel-body-cssmenu ul ul li.open > a, .x-panel-body-cssmenu ul ul li.active > { background: #424852; color: #ffffff; } .x-panel-body-cssmenu ul ul li:first-child > { box-shadow: none; } .x-panel-body-cssmenu ul ul ul li:first-child > { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); } .x-panel-body-cssmenu ul ul ul li { padding-left: 30px; } .x-panel-body-cssmenu > ul > li > ul > li:last-child > a, .x-panel-body-cssmenu > ul > li > ul > li.last > { border-bottom: 0; } .x-panel-body-cssmenu > ul > li > ul > li.open:last-child > a, .x-panel-body-cssmenu > ul > li > ul > li.last.open > { border-bottom: 1px solid #32373e; } .x-panel-body-cssmenu > ul > li > ul > li.open:last-child > ul > li:last-child > { border-bottom: 0; } .x-panel-body-cssmenu ul ul li.has-sub > a::after { display: block; position: absolute; content: ''; width: 5px; height: 5px; right: 20px; z-index: 10; top: 11.5px; border-top: 2px solid #eeeeee; border-left: 2px solid #eeeeee; -webkit-transform: rotate(-135deg); -moz-transform: rotate(-135deg); -ms-transform: rotate(-135deg); -o-transform: rotate(-135deg); transform: rotate(-135deg); } .x-panel-body-cssmenu ul ul li.active > a::after, .x-panel-body-cssmenu ul ul li.open > a::after, .x-panel-body-cssmenu ul ul li > a:hover::after { border-color: #ffffff; }
i tried escaping dot, no dot, using pound sign anyways, no go.
any ideas ?
nb: answers original question. question has been since edited show code there doesn't appear problem @ all.
in general, should avoid using special characters in class names @ all. more trouble worth.
however, if stuck class name containing special character, can escape it.
you have additional problem need prefix class name .
in selector indicate using class selector:
in selector:
.\.x-panel-body-cssmenu
note since putting selector in javascript string literal, , \
special character there, need escape \
".\\.x-panel-body-cssmenu"
nb: there no such thing css class. html has classes, css has class selectors.
Comments
Post a Comment