Проблема селектора jQuery 1.4.3 в IE7 - PullRequest
1 голос
/ 06 августа 2011

Я пытаюсь получить такой элемент:

var billingID = 'table[id^="table.form.billingaddress"] #'+ shippingID;
var billingName = $(billingID).attr("name");

Он работает так, как я ожидал в FF, Chrome, IE8, IE9, но IE7 дает мне «неопределенный»

Помощь будет принята с благодарностью.... и я застрял в том, как идентификаторы генерируются в документе: - (

1 Ответ

1 голос
/ 06 августа 2011

Этот код работает в IE 7.0.5730.13:

<table id="table.form.billingaddress.0">
    <div id="nameFirst"></div>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<script>
    $(document).ready(function() {
       // alerts with "table.form.billingaddress.0"
       alert($('table[id^="table.form.billingaddress"]')[0].id);
       // alerts with "nameFirst"
       alert($('table[id^="table.form.billingaddress"] #nameFirst')[0].id);
    });
</script>

Я не уверен, почему это работает вообще, периоды в идентификаторе таблицы должны быть экранированными .

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

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