jQuery使用数组上的html()不能在IE中工作

时间:2009-11-24 18:42:44

标签: jquery html arrays

我有一些XML

<carouselitem name='carouselitem'><flick><pic>/images/test1.jpg</pic><headertext>sdfsdfsdf csfdfsdf</headertext><dek>sdfsfsd sdfsf dsfsfdsfds sdf sdfsfds</dek></flick></carouselitem>

在DIV中包含id为carousel。以下适用于FF

var carouselarray = $('#carousel carouselitem');
    jQuery.each(carouselarray, function(){
        var row_to_insert = $(this).html();
        carouselxml += row_to_insert;
    });

row_to_insert var在FF中填充了XMl,但在IE和Chrome中是空的。任何帮助都会受到赞赏

由于

3 个答案:

答案 0 :(得分:1)

我认为这是失败的,因为你正在创建自定义标签。如果你看一下innerHTML属性,你会发现它对于IE来说是空白的。要让IE识别自定义标记,请结帐:http://ajaxian.com/archives/adding-custom-tags-to-internet-explorer-the-official-way&amp; http://msdn.microsoft.com/en-us/library/ms531076%28VS.85%29.aspx

答案 1 :(得分:1)

我建议不要将XML直接插入HTML,而是将其放入文件

carousel.xml

<carousel>
    <carouselitem name="carouselitem">
    ...

然后使用jquery ajax函数调用它。 IE将需要一个解决方法,因为有一些奇怪的错误,它不能正确地从本地机器处理xml。从服务器上它没有这个问题。

$.ajax({
    url: "carousel.xml",
    dataType: ($.browser.msie) ? "text" : "xml",
    success: function(data) {
        var xml;
        if (typeof data == "string") {
            xml = new ActiveXObject("Microsoft.XMLDOM");
            xml.async = false;
            xml.loadXML(data);
        } else {
            xml = data;
        }

        $(xml).find("carouselitem").each(function() {
            //your code...
        });
    )
});

答案 2 :(得分:0)

我认为你需要使用[name = carouselitem]来分离你正在寻找的属性。这段代码(对我来说无论如何)正确填充row_to_insert。如果您正在寻找,请告诉我。

var carouselxml = '';

var carouselarray = $('#carousel [name=carouselitem]');
    jQuery.each(carouselarray, function(){
            var row_to_insert = $(this).html();
            console.log(row_to_insert);
            carouselxml += row_to_insert;
    });