2011-11-07 11 views
6

Esto debería ser un problema realmente simple, pero no puedo entender lo que estoy haciendo mal. Estoy tratando de acceder a la propiedad CSS 'border-bottom' como esto:jQuery- .css() no funciona para una entrada

var temp = $('#divName').css('border-bottom'); 

Por desgracia, después de esto, temp contiene la cadena ""

¿Alguien sabe por qué esto no está funcionando o lo que debería hacer de manera diferente para que funcione? Gracias.

+0

¿Intentó 'borderBottom'? –

+0

¿'' divName' ya contiene la propiedad 'border-bottom'? – Sparky

Respuesta

8

Los estilos tienen que ser más específicos . Dado que border-bottom es una propiedad corta para otras propiedades (similar a background, por nombrar una propiedad común), la propiedad tiene que ser otorgada explícitamente.

var elem = $('#divName'); 
var border_width = elem.css('border-bottom-width'); 
var border_color = elem.css('border-bottom-color'); 
var border_style = elem.css('border-bottom-style'); 
var border_bottom = border_width + " " + border_color + " " + border_style; 

violín: http://jsfiddle.net/6wRj4/
Ver también: MDN: border-bottom short-hand.

+0

Podría valer la pena mencionar que esto * no * se considera un error en jQuery. jQuery informa los atributos de CSS exactamente como los devuelve el navegador, y diferentes navegadores a veces devuelven diferentes respuestas para el mismo documento HTML. – Blazemonger

+0

De hecho, se usan los métodos 'window.computedStyle()' y 'element.currentStyle []' (IE). Algunos valores son modificados por jQuery, para mostrar el mismo resultado en diferentes navegadores. –

+0

Ahh. Ahora eso tiene mucho sentido. Vi algo como esto en los documentos de Jquery, pero no puse 2 y 2 juntos. Gracias. – gabaum10

2

Compruebe para asegurarse de que $ ('# divName') selecciona un solo elemento. Puede usar la sintaxis de matriz en un objeto jquery para recuperar el objeto DOM subyacente. También debe verificar (por ejemplo, usando Firebug) para asegurarse de que el elemento DOM que está mirando tiene el estilo que está buscando.

Si ambas cosas están funcionando correctamente, puede intentar utilizar las propiedades de borde más granulares ...-inferior-estilo de borde, frontera-bottom-width, etc.

0

Probar con document.getElementById("divName").style.borderBottom;.