Получить цвет границы с jQuery в IE с помощью .css()
Возникает проблема с получением цвета рамки элемента clicked в Internet Explorer.
$("#clickme").click(function() {
alert($(this).css('border-color'));
});
Вот jsfiddle: http://jsfiddle.net/dS7mc/
Он работает в chrome, но он не работает в IE10.
Любые идеи, как заставить его работать с обоими? Кроме того, меняя только на "границу", в хром это дает мне 2px solid rgb(0, 0, 0)
, но в то же время я все равно получаю пустое предупреждение.
PS. Да, я пробовал "borderColor". Также не работает в IE
Ответы
Ответ 1
Попробуйте это. Работы по IE8
$("#clickme").click(function() {
$('body').append($(this).css('border-top-color'));
});
![enter image description here]()
Кроме того,
Цвета возвращаются браузерами по-другому. FireFox, Safari и Chrome возвращают их как значения rgb()
, а IE
возвращает их точно так же, как вы их установили в своем CSS
, даже если вы используете сокращенную нотацию (#f00
vs #ff0000
), и Opera всегда возвращает цвет как hexidecimal
с 6 цифрами
Ответ 2
Это связано с тем, что в Internet Explorer нет border-color
. Свойство переименовывается в border-pos-color:
border-top-color: #000000;
border-right-color: #000000;
border-bottom-color: #000000;
border-left-color: #000000;
То же самое относится к border-width
и border-style
(border-left-width
и т.д.). Чтобы потянуть цвет границы (при условии, что все 4 одинаковы), вы должны использовать:
$(this).css('border-top-color');
В равной степени, чтобы вытащить border-width
или border-style
(опять же, если все 4 равны), вы должны использовать:
$(this).css('border-top-width');
$(this).css('border-top-style');
Вы можете найти, какие свойства стиля есть у элемента с инструментами разработчика IE F12:
![IE Dev Tools]()
Ответ 3
похож на Мохаммада Адиля:
$("#clickme").click(function() {
var Bcolor = $(this).css("border-left-color");
alert(Bcolor);
});
вам нужно специфицировать каждую сторону
Ответ 4
попробуйте регулярные js
var clickme = $("#clickme")[0];
clickme.addEventListener('click', function() {
alert(clickme.style.borderColor)
}, false)