jQuery проблема с IE ... все еще работает на Firefox и Chrome - PullRequest
1 голос
/ 18 мая 2011

есть небольшая проблема с IE8 ...

Приведенный ниже код отлично работает в Firefox и Chrome ...

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("[title=\"CAPPL:LOCAL.L_hk[1].vorlauftemp_ist-shortText\"]").css("background-     color","red");
});
</script>
</head>
<body>
<div title="CAPPL:LOCAL.L_hk[1].vorlauftemp_ist-shortText">Value</div>
</body>
</html>

Если я хочу использовать этот код в IE8 или нижеон вылетает без какого-либо сообщения об ошибке ... У кого-нибудь есть решение для этой хитрой проблемы?

PS, чтобы удалить IE8, это слишком решение: D

Ответы [ 6 ]

2 голосов
/ 18 мая 2011
$(document).ready(function() {
  $("[title=CAPPL\\:LOCAL\\.L_hk\\[1\\]\\.vorlauftemp_ist-shortText]").css({"background-color" : "red"});
});

кажется, что режим совместимости IE7 / IE8 все еще нуждается в специальных символах в значении атрибута , экранированных с использованием двойной обратной косой черты. также обратите внимание, что он работает без экранирования _ и кавычки до и после заголовка не требуются

из документов jquery

Если вы хотите использовать любой из метасимволы (такие как ! "# $% & '() * +,. / :; <=>? @ [] ^ {|} ~) как буквальная часть имени, вы должны избежать персонажа с двумя обратные слеши: \\. Например, если вы есть элемент с id = "foo.bar", вы можно использовать селектор $("#foo\\.bar"). Спецификация W3C CSS содержит полный набор правил относительно действительных CSS селекторы.

1 голос
/ 18 мая 2011

Проблема IE заключается в сочетании квадратных скобок и двоеточия в селекторе.

Эта скрипка работает в IE (нет: или []): http://jsfiddle.net/aM9nX/4/

Эта скрипка работает в IE (имеет []): http://jsfiddle.net/4nfHW/1/

Эта скрипка не имеет (имеет: и []): http://jsfiddle.net/xghtg/3/

Можно ли удалить этих персонажей?

0 голосов
/ 18 мая 2011

Отлично работает на FF, Safari, Chrome, IE9, IE8, , кроме IE7 .

Убедитесь самиЯ изменил \ "на '. Так как это намного более уместно, спасибо избежать этого.

http://jsfiddle.net/p2ReV/

0 голосов
/ 18 мая 2011

@ anothershrubery прав .. он работает в IE8 http://jsfiddle.net/ha44p/

вы неправильно написали фоновый цвет свойства css, что, похоже, является проблемой.

0 голосов
/ 18 мая 2011

Не уверен, что это опечатка, но пробелы в "background-color" приведут к тому, что он не будет работать.

0 голосов
/ 18 мая 2011

try .css ({"background-color", "red"}) Я не знаю, в этом ли проблема, но она вызывала у меня горе раньше (не хватало {s)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...