Почему этот код JQuery не работает в IE7? - PullRequest
0 голосов
/ 24 августа 2011

Почему мой следующий код не работает в IE7, но работает в Chrome, Opera, Mozila ....

JavaScript:

$(function(){
    $(".sub").hide();
    $("tr#sub1").show();
    $(".expandSub a").click(function(){
        var relValue = $(this).attr("rel");
        $("tr#"+relValue).toggle();
        var t = $(this).text();
        if(t=="+")$(this).html("-");
        else if(t=="-")$(this).html("+");
        return false;
    });
});

HTML:

<table cellspacing="0">
    <tr class="headRow">
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td width="350px" align="center">Title</td>
    </tr>
    <tr class="leadRow">
        <td class="expandSub"><a href="" rel="sub1">-</a></td>
        <td>1</td>
        <td>Cake</td>
    </tr>
    <tr class="sub" id="sub1">
        <td>&nbsp;</td>
        <td>1</td>
        <td>Red Velvet Cakes</td>
    </tr>
    <tr class="sub evenRow" id="sub1">
        <td>&nbsp;</td>
        <td>2</td>
        <td>Cupcake Recipes</td>
    </tr>
    <tr class="sub" id="sub1">
        <td>&nbsp;</td>
        <td>3</td>
        <td>Pineapple Mojo Cake</td>
    </tr>
    <tr class="sub evenRow" id="sub1">
        <td>&nbsp;</td>
        <td>2</td>
        <td>Carrot Cake Recipes</td>
    </tr>
    <tr class="sub" id="sub1">
        <td>&nbsp;</td>
        <td>3</td>
        <td>Zucchini Chocolate Chip Cake</td>
    </tr>

    <tr class="leadRow">
        <td class="expandSub"><a href="" rel="sub2">+</a></td>
        <td>2</td>
        <td>Cookies</td>
    </tr>
    <tr class="sub" id="sub2">
        <td>&nbsp;</td>
        <td>1</td>
        <td>Chocolate Chip Cookie Recipes</td>
    </tr>
    <tr class="sub evenRow" id="sub2">
        <td>&nbsp;</td>
        <td>1</td>
        <td>Sugar Cookie Recipes</td>
    </tr>
    <tr class="sub" id="sub2">
        <td>&nbsp;</td>
        <td>1</td>
        <td>Filled Cookies</td>
    </tr>
    <tr class="sub evenRow" id="sub2">
        <td>&nbsp;</td>
        <td>1</td>
        <td>Sugared Black Raspberry Tea Cookiess</td>
    </tr>

    <tr class="leadRow" rel="sub3">
        <td class="expandSub"><a href="" rel="sub3">+</a></td>
        <td>3</td>
        <td>Appetizers</td>
    </tr>
    <tr class="sub" id="sub3">
        <td>&nbsp;</td>
        <td>1</td>
        <td>Hummus Recipes</td>
    </tr>
    <tr class="sub evenRow" id="sub3">
        <td>&nbsp;</td>
        <td>1</td>
        <td>Cheese Balls</td>
    </tr>
</table>

1 Ответ

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

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

Вы повторяете свои идентификаторы (т.е. id="sub1"), и это недействительно. Вероятно, IE7 не слишком доволен этим. Я удивлен, что любой браузер работает, если честно.

Вставьте свой HTML-код в службу проверки W3C, чтобы увидеть все ошибки:

http://validator.w3.org/

...