我有一个jQuery函数,通常可以在Volusion页面上运行,由于某种原因现在它无法运行。 location.pathname.indexOf定位具有该URL的所有页面(该站点使用GET变量在SearchResults.asp页面上执行搜索)。我已经将引用从单打改为双打,我似乎无法找出其他任何东西来测试它。有没有人在这段代码中看到任何语法错误?不应该有任何冲突,因为它只运行jQuery(没有其他像MooTools)。我试图在document.ready之后做一个'Test'警报,但屏幕上没有任何反应。谢谢!
<script>
$(document).ready(function() {
if (location.pathname.indexOf('/SearchResults.asp') != -1 ) {
$('div#content_area').css({'display','none !important'});
}
});
</script>
答案 0 :(得分:8)
您遇到语法错误。
此:
$('div#content_area').css({'display', 'none !important'});
应该是这样的:
$('div#content_area').css({'display': 'none !important'});
// ^
// |
// | look here
使用.css()时,您可以使用2种变体。
您可以使用它来更新单个属性,该属性使用,
来分隔CSS属性的名称和值,类似于:
$('div#content_area').css('display', 'none !important');
或者您可以使用jQuery 1.9中添加的新变体,它允许您一次指定多个样式,允许您指定属性 - 值对,类似于:
$('div#content_area').css({
'display': 'none !important',
'border' : 'solid 1px red'
});
css()和!important
尝试使用.css()
和!important
来应用样式时似乎存在问题。
有一个很久以前被提出的错误:Ticket #2066被关闭了,另一个被选中了。
它提到,作为替代方案,您可以在使用多样式变体时将cssText
设置为与此类似:
$('div#content_area').css({
'cssText': 'display: none !important'
});
使用单一样式变体时或者这个:
$('div#content_area').css('cssText', 'display: none !important');
尽管如此,正如提到的那样,提醒一句:
您必须小心设置
cssText
,因为它设置/清除所有内容 在该元素的CSS中。
考虑到cssText
的副作用,另一种最可能是最安全的替代方法是创建一个单独的CSS类并应用它,类似于:
.alwaysHide{
display: none !important;
}
$('div#content_area').addClass('alwaysHide');
希望这有帮助。
答案 1 :(得分:4)
您正在尝试使用2种语法样式。
要么你需要这样做:
<script>
$(document).ready(function() {
if (location.pathname.indexOf('/SearchResults.asp') != -1 ) {
$('div#content_area').css('display','none !important');
}
});
</script>
或者你需要使用它:
<script>
$(document).ready(function() {
if (location.pathname.indexOf('/SearchResults.asp') != -1 ) {
$('div#content_area').css({'display' : 'none !important'});
}
});
</script>