2012-01-09 23 views

Odpowiedz

17

Aby usunąć atrybut, użyj tego:

$(".mydiv UL").css("height", ""); 

Dzięki am not i am do korygowania moją odpowiedź.

+0

+1 dla właściwej koncepcji, ale powinno być: '$ (".mydiv ul"). css ("height", "auto"); '. Odwołujesz się do identyfikatora, gdzie powinna być klasa. –

+0

@KP thanks - naprawiono literówkę. –

+0

I przykład na żywo, ponieważ miałem zamiar opublikować tę samą odpowiedź: http://jsfiddle.net/cNTD4/ – Jamiec

1

Tak to jest .. dpeneding w jaki sposób chcesz to zrobić

<script type="text/javascript"> 
    function changestyle(element) { 
     var currentstyle = document.getElementById(element).style.display; 
     if (currentstyle == "inline") { 
      document.getElementById(element).style.display = ""; 
      } else { 
      document.getElementById(element).style.display = "inline"; 
     } 
    } 
</script> 

ta może się nieznacznie różnić w zależności od broswers ale powinien pokazać, jak go zmienić, jeśli chcesz.

eek .. lekceważenie .. jQuery - wiele łatwiej :)

0

dodać atrybut stylu CSS, a następnie można dodać lub usunąć klasę z tych funkcji jQuery: addClass i removeClass

+0

To dobra rada, ale nie odpowiada na faktyczne pytanie zadawane przez PO. –

3

Tak! Możesz!

Ustawienie właściwości css na pustą wartość powoduje jej wyczyszczenie.

Więc jeśli Twój styl inline jest „background: pink” można usunąć go za pomocą:

$element.css('background','') 

jestem całkiem pewny, że dowiedział się, że gdzieś tutaj na SE, ale, niestety, nie mam konkretne źródło do strony, więc przeprasza za to, że nie jest w stanie udzielić kredytu tam, gdzie należny jest kredyt.

UPDATE:

Cóż, przypuszczam, że powinienem pójść do źródła. Z dokumentacji jQuery (wyróżnienie moje):

Ustawienie wartości właściwości stylu na pusty ciąg znaków - np. $ ('# mydiv'). css ('color', '') - usuwa tę właściwość z elementu, jeśli został już zastosowany bezpośrednio, , czy w atrybucie stylu HTML, przez metodę .css() jQuery, lub poprzez bezpośrednią manipulację DOM właściwości stylu. Nie usuwa jednak stylu, który został zastosowany z regułą CSS w arkuszu stylów lub elemencie.

http://api.jquery.com/css/

+0

to nie wydaje się działać z .css ("wysokość", ") http://jsfiddle.net/U7rHU/1/ – jbabey

+1

@jbabey to działa dobrze dla mnie (przykleić kolor tła na UL, aby zobaczyć go praca) –

+0

Kolor tła jest nieistotny, nie działa z atrybutem wysokości. – jbabey

0
$('.mydiv ul').each(function(){ 
    $(this).attr('style', $(this).attr('style').replace('height: ', 'height:').replace('height:'+$(this).css('height')+';', '')); 
}); 

tylko upewnić się, format wartości styl albo "height:111px;" lub "height: 111px;"

2

spróbować tego:

$('.mydiv ul').height(''); 
Powiązane problemy