Jquery специальная обработка символов для IE - PullRequest
0 голосов
/ 24 мая 2011

Это немного неловкий сценарий, но мне нужно решение.

Я использую некоторые имена в качестве идентификатора для HTML-элемента li. В этих именах есть специальные символы. используя JQuery для получения идентификатора.

Допустим, мой идентификатор используется

var abc = li[id="someCompany=\"Some Term\""]

если я называю это как

alert($(abc).parent()[0]); or 
alert($(abc).html()); 

Я получаю данные и все работает нормально в firefox , но не в IE .

Мой фактический идентификатор отображается в приложении

<li id="someCompany=&#034;Some Term&#034;"> xyz </li>

Я заменяю его на .replace (/ "/ gi," \ "")

Пожалуйста, дайте мне знать, как заставить его работать в IE, заранее спасибо

Извините, ребята, мне нужно дать больше информации в моем вопросе ...

Во-первых, я получаю идентификатор как

var aaa = "someCompany=&#034;some Data&#034;";

Я заменяю его на

aaa = aaa.replace(/&#034;/gi, "\"").replace(/&#039;/gi, "\'").replace(/&amp;/gi, "\&");

Тогда

var abc = aaa.replace(/"/gi, "\\\"").replace(/\:/gi, "\:").replace(/'/gi,"\\\'");

и тогда мой вопрос следует .... Когда я попытался изменить вышеприведенную строку на

var abc = aaa.replace(/"/gi, "\"").replace(/\:/gi, "\:").replace(/'/gi,"\'");

все хорошо, но у меня есть некоторые имена, такие как

var aaa = "someCompany=&#034;some's Data&#034;"; //In this case I need to handle more special chanracters

Здесь .replace(/"/gi, "\\\"") работает нормально в Firefox, но не в IE. Как я могу заставить его работать в IE, пожалуйста, предложите

Ответы [ 3 ]

1 голос
/ 02 июня 2011

попробуйте использовать проверку браузера, например, одинарные кавычки и косую черту в IE и двойную в FF.

0 голосов
/ 24 мая 2011
var abc = $("[id='someCompany=\"Some Term\"']");
alert($(abc).html()); //returns xyz

работает для меня в IE7 и 8, единственная разница - одинарные кавычки вокруг всего значения атрибута вместо двойных, которые у вас есть

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

Какую версию IE вы используете? Я на IE9, и на jsFiddle, который работает в IE для меня (в режиме стандартов IE7 / 8/9 также). Единственное различие, которое я имею между вашим кодом и моим, состоит в том, что я заключаю в кавычки abc, т.е. там хоть?

http://jsfiddle.net/benno_007/mhHJh/2/

Хотя .parent () [0] возвращает объект, а не xyz. Если вам просто нужен доступ к xyz, просто используйте $ (abc) .html ()

Edit:

Альтернативой использованию этих неудобных идентификаторов может быть:

<li id="someCompany" term="Some Term">test</li>

$('#someCompany[term="Some Term"]').html();

Здесь: http://jsfiddle.net/benno_007/mhHJh/3/

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