2009-09-14 2 views
0

У меня возникают проблемы с получением моего JQuery Selector для доступа к определенному элементу HTML.JQuery h2 selector issue

У меня есть тег <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

ответ

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() - прохождение без параметра удаляет все классы. –

+0

Но там * нет названия класса *, установленного против элемента H2! –

+0

В этом вопросе нет, но есть пример с чернильницей. –

0

кажется, излишне длинным селектор, попробуйте

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

и да, jimyi правильно, ваш h2 оленьей кожи иметь атрибут класса в фрагменте коды вы публикуемая

1

Какого класса вы пытаетесь удалить?

У h2 нет классов, связанных с ним для начала.

Возможно, измените вашу строку css, примените эти стили через некоторый класс и добавьте этот класс в h2 в исходный HTML-код?

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 down, хотя. Почему бы просто не

".li1 h2"