Javascript код не работает в IE8 / 7 - PullRequest
0 голосов
/ 23 ноября 2011

Этот код работает в chrome / ff / ie9, но не в ie8 / 7.

http://jsfiddle.net/vDZJM/6/

Вот JS:

function doDistricts(theData){
    var district="";
    var district="";
    $(theData).find("district").each(function(){

        var theDistrict = $(this);
        var districtName = theDistrict.text();
        var level = theDistrict.attr("level");
        var attr = theDistrict.attr('deleted');
        if(typeof attr !== 'undefined' && attr !== false){
            district=district+'\t\t\t<div class="district deleted">\n';
            district=district+'\t\t\t\t<header class="clearfix doNode" data-role-id="'+districtName+'" data-role-nodeLevel="'+level+'" data-role-nodeValue="'+districtName+'">\n';
            district=district+'\t\t\t\t\t<span class="arrow"></span>\n';
            district=district+'\t\t\t\t\t<img src="/img/address_list/map.png" alt="'+districtName+'" class="icon" />\n';
            district=district+'\t\t\t\t\t<span class="text">'+districtName+'</span>\n';
            district=district+'\t\t\t\t\t<a class="add" href="#">Add</a>\n';
            district=district+'\t\t\t\t</header>\n';
            district=district+'\t\t\t\t<div class="children"></div>\n';
            district=district+'\t\t\t</div>\n';
        }else{
            district=district+'\t\t\t<div class="district">\n';
            district=district+'\t\t\t\t<header class="clearfix doNode" data-role-nodeLevel="'+level+'" data-role-id="'+districtName+'" data-role-nodeValue="'+districtName+'">\n';
            district=district+'\t\t\t\t\t<span class="arrow"></span>\n';
            district=district+'\t\t\t\t\t<img src="/img/address_list/map.png" alt="'+districtName+'" class="icon" />\n';
            district=district+'\t\t\t\t\t<span class="text">'+districtName+'</span>\n';
            district=district+'\t\t\t\t\t<a class="remove" href="#">Remove</a>\n';
            district=district+'\t\t\t\t</header>\n';
            district=district+'\t\t\t\t<div class="children"></div>\n';
            district=district+'\t\t\t</div>\n';
        }

    });
    return district;
}

$('div.1').html(doDistricts($(theData)));

В рабочей среде с большим количеством кода и т. Д. Контент генерируется, но тег <header> преждевременно закрыт, то есть весь код, который должен находиться внутри тега <header> (<span class="arrow"> и т. Д.), Фактически выходит за его пределы. , С чего бы это?

1 Ответ

2 голосов
/ 23 ноября 2011

Если ваш документ html5, вам нужно будет использовать innershiv при добавлении элементов в DOM

http://jdbartlett.com/innershiv/

...