Ошибка в селекторе атрибутов jquery и IE6-7 - PullRequest
3 голосов
/ 15 июня 2010

Я пытаюсь реализовать скрипт JQuery для обработки некоторых областей внутри карты изображения. Я использую $ ('area [shape = "poly"]') в качестве селектора для получения областей, которые меня интересуют. Он отлично работает в IE8 и Firefox, но не выбирает элементы в IE6 или IE7 .
Это тестовая страница, которая показывает эту проблему. Я не знаю, является ли это ошибкой JQuery или я делаю что-то не так.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
 var areas = $('area[shape="poly"]');
 alert('areas: ' + areas.length);
});
//]]>
</script>
 <title>Test</title>
</head>
<body>
<img id="img1" src="nothing.gif" style="width:300px; height:300px; border: 2px solid black" usemap="#map1"/>
<map id="map1">
<area shape="rect" title="rectArea" coords="126,112,231,217" alt=""/>
<area shape="poly" title="polyArea1" coords="274,72,262,70,251,68,240,67,228,66,217,67,206,68,194,70,183,72,181,63,192,60,204,58,216,57,228,56,240,57,252,58,264,60,276,63" alt=""/>
<area shape="poly" title="polyArea2" coords="241,194,235,193,228,193,222,193,216,194,196,119,204,117,212,116,220,115,228,115,237,115,245,116,253,117,261,119" alt=""/>
</map>
</body>
</html>

Это показывает 2 в IE8 и Firefox и 0 в IE6-7
Спасибо, Гильермо

Ответы [ 3 ]

7 голосов
/ 15 июня 2010

Похоже, работает, если вы в верхнем регистре значение:

var areas = $('area[shape="POLY"]');
2 голосов
/ 15 июня 2010

У меня такая же проблема с IE6.Вы можете обмануть и изменить селектор на:

[title*="poly"]

(*= означает содержит)

0 голосов
/ 15 июня 2010

Попробуйте это: $ ( "Площадь [форма = поли]")

У меня этот код правильно выбирается в IE6

    <script>
      $(document).ready(function() {
        $("#button").click(function(){
          $("div[shape=poly]").remove();
        });
      });          
    </script>

<button id="button">Button</button>
<div shape="poly">p</div>
<div shape="poly">p</div>
<div shape="s">s</div>
<div shape="poly">p</div>
<div shape="poly">p</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...