jQuery и ie8, использующие селектор идентификатора, не работают - PullRequest
0 голосов
/ 02 апреля 2011

Я создаю ротатор отзывов, который анализирует XML-файл, полный отзывов.Каждому отзыву присваивается «класс», так что на страницах можно указать класс отзыва для использования (например, «корпоративный» или «гольф» и иметь соответствующую ссылку.)

Проблема в том, что в IE8 (даже с учетом мета совместимости) HTML в пределах определенных идентификаторов не изменяется.Я переключился на классы, чтобы убедиться, что Chrome работает (Firefox всегда работает.) Ниже приведен пример использования классов:

 $("span.quote").html("&quot;" + $(this).find("quote").text() + "&quot;<br />");
//print each testimonial name, title, and org if exists

  $("span.attrib").html("- " + $(this).find("name").text() + "");
  $("span.attrib").append(", " + $(this).find("title").text() + "");
  $("span.attrib").append(", " + $(this).find("organization").text() + "<br />");

Они работают в Firefox и Chrome.Приведенный ниже код с использованием селектора идентификаторов работает только в Firefox, но это мой предпочтительный метод.

 $("#quote").html("&quot;" + $(this).find("quote").text() + "&quot;<br />");
//print each testimonial name, title, and org if exists

  $("#attrib").html("- " + $(this).find("name").text() + "");
  $("#attrib").append(", " + $(this).find("title").text() + "");
  $("#attrib").append(", " + $(this).find("organization").text() + "<br />");

Мой HTML-фрагмент:

<span id="quote">
"This is the default quote."
</span>
<span id="attrib">
- Default name, default title, default organization
</span>

Что неверного в этом коде, что IE8 выиграл 'правильно поменять кавычки?Когда я переключаю код с селекторов на оповещения (просто чтобы убедиться, что цикл синтаксического анализа работает), все работает отлично.

Любые комментарии приветствуются.В недоумении здесь.Вернемся к проекту .NET или Flash, чтобы оставить это на несколько часов.

Роб

Добавлен дополнительный пример кода:

содержимое testimonialflipper_tst.js

var filter_value = new String();

$(document).ready(readfilterXML("golf"));

function readfilterXML(passed_value)
{
    filter_value = passed_value;
  $.ajax({
    type: "GET",
    url: "testimonials.xml",
    dataType: "xml",
    success: parseXml
  });
}

function parseXml(xml)
{
    var holdclass = filter_value;
    // need to seek class within id "quote" like "#quote.class" to find out what it is
  //find every testimonial and load the array
  $(xml).find("testimonial").each(function()
  {
    var tempclass = $(this).attr("class");
//  $("#error").html(tempclass);
    if (tempclass == holdclass)  {
  $("span#quote").html("&quot;" + $(this).find("quote").text() + "&quot;<br />");
//print each testimonial name, title, and org if exists
  $("span#attrib").html("- " + $(this).find("name").text() + "");
  $("span#attrib").append(", " + $(this).find("title").text() + "");
  $("span#attrib").append(", " + $(this).find("organization").text() + "<br />");
}
});
}

1 Ответ

0 голосов
/ 02 апреля 2011

У вас есть более одного <span> с одним и тем же идентификатором?Эти идентификаторы кажутся довольно общими, если вы собираетесь иметь несколько кавычек в своем html.

Если у вас есть несколько идентичных идентификаторов, каждый браузер будет ломаться по-своему.

PS Больше кода будетбыть полезным.

...