2009-09-14 176 views
0

我有問題讓我的JQuery選擇器訪問特定的HTML元素。JQuery h2選擇器問題

我有一個<h2>標記,我試圖從中刪除CSS類,然後添加一個新的基於一些用戶操作。

<h2> CSS的定義是:

html .image_thumb ul li h2 { 
    color : #ffffff; 
    font-size: 1.5em; 
    margin: 5px 0; padding: 0; 
} 

我的HTML代碼片段看起來像這樣:

'<div id="div_image_thumb" class="image_thumb"> 
<ul> 
    <li class="LI1"> 
     <a href="./images/sample1.jpg"></a> 
     <div class="block"> 
      <h2>This is my header</h2> 
      <small>Lorem Ipsum Article Titles Running </small> 
      <p>Lorem Ipsum Details...<br /><a href="" target="_blank">Read More</a> </p> 
     </div> 
    </li> 

等等

我JQuery的調用看起來像這樣:

$("div#div_image_thumb ul .LI1 div h2").removeClass(); 

但它不會刪除該類。有任何想法嗎?

+0

究竟什麼是你想怎麼辦?從h2中刪除樣式? 'removeClass'將不起作用,因爲h2沒有類。 – jimyi 2009-09-14 21:38:41

回答

2

這不是你的問題,但你需要傳遞一個參數removeClass()。像:

$('#foo').removeClass('active'); 

改變你的CSS實際上是一個類分配給H2,就像這樣:

html .image_thumb ul li h2.myClass{ 
    color : #ffffff; 
    font-size: 1.5em; 
    margin: 5px 0; 
    padding: 0; 
} 

更改此:

<h2>This is my header</h2> 

這樣:

<h2 class="myClass">This is my header</h2> 

並讓jQuery做到這一點:

$("div#div_image_thumb ul .LI1 div h2").removeClass('myClass'); 

給一個嘗試 - 好運

+2

您不需要將參數傳遞給removeClass() - 傳遞沒有參數將刪除所有類。 – 2009-09-14 21:44:11

+0

但是*沒有類名*針對H2元素設置! – 2009-09-14 21:46:24

+0

沒有問題,但inkedmn的例子。 – 2009-09-14 21:47:21

0

似乎是不必要的長期選擇,儘量

$(".block > h2").removeClass(); 

,是的,jimyi是正確的,你的H2可是沒有在您發佈

1

片斷是你想刪除哪一個類的類屬性?

h2沒有與之相關的類。

也許改變你的css行通過某些類應用這些樣式,並將該類添加到HTML源代碼中的h2?

html .image_thumb ul li h2.startclass { color : #ffffff; font-size: 1.5em; margin: 5px 0; padding: 0; } 

然後:

<div id="div_image_thumb" class="image_thumb"> 
<ul> 
     <li class="LI1"> 
       <a href="./images/sample1.jpg"></a> 
       <div class="block"> 
         <h2 class="startclass">This is my header</h2> 
         <small>Lorem Ipsum Article Titles Running </small> 
         <p>Lorem Ipsum Details...<br /><a href="" target="_blank">Read More</a> </p> 
       </div> 
     </li> 
0

嘗試

$("#div_image_thumb div.block > h2").removeClass(); 

我要重申一下別人都已經說 - 這<h2>元素沒有一個類屬性來定義。

0

您試圖刪除實際上未分配給H2的類。

css屬性是爲特定位置的<h2>元素定義的,但在此處沒有定義實際的類名稱。您更好的選擇是使用jQuery.css()方法並設置單獨的樣式屬性。

或者,您應該使用jQuery.addClass併爲您的H2元素指派一組樣式來覆蓋默認值。

0

您的選擇器不正確。嘗試

div#div_image_thumb ul li.LI1 div h2 

我會建議儘量簡化它waaaay。爲什麼不只是

".li1 h2"