通过JavaScript更改css条件不起作用

时间:2013-07-11 00:50:45

标签: javascript jquery html css

我正在尝试根据URL修改类的css。这是当前不工作的代码:

JS:

<script>
//<![CDATA[ 
if (location.pathname == "/SearchResults.asp" 
|| location.pathname.indexOf("-s/") != -1 
|| location.pathname.indexOf("_s/") != -1) 
$('.colors_productname span').css("background-color", "#F7F7F7");
//]]> 
</script>

HTML:

<div>
    <a href="#" class=
    "productnamecolor colors_productname" title="Cracked Pepper"><span itemprop=
    'name'>Cracked Pepper</span></a><br />
    <div>
    <div>
      <b><font class="pricecolor colors_productprice"><span class=
      "PageText_L483n">$11.00</span></font></b>
    </div>
    <img src="#" /></div>
</div> 

注意:

  1. 我无法更改HTML,它是自动生成的

  2. HTML的网址包含“/ Meats-s /”,所以它应该被第二个if条件定位。

  3. 我可以在普通的.css文件中使用相同的css选择器(.colors_productname span)编辑它,但这不起作用。

1 个答案:

答案 0 :(得分:6)

DOM Ready handler

中填写您的代码
$(function() {
    // Your code
});

将代码包含在上面的处理程序中将确保代码仅在元素在DOM中可用之后运行。

使用===代替==总是更快。

此外,您似乎多次使用window.location。考虑缓存它。

$(function() {
   var loc = location.pathname;
   if (loc === "/SearchResults.asp" || loc.indexOf("-s/") !== -1
                                    || loc.indexOf("_s/") !== -1
   $('.colors_productname span').css("background-color", "#F7F7F7");
});