1
        var attachmentDeleteMainModal = $('#attachment-deletion');
        var attachmentDeleteMainModalClone = attachmentDeleteMainModal.clone();
        attachmentDeleteMainModalClone.attr('id', 'attachment-deletion-'+'main');
        attachmentDeleteMainModalClone.insertAfter('#attachment-deletion');

此方法将我的新选择器添加到 Chrome 中的 DOM,但在 ie8 中不起作用,这是我到目前为止测试的全部

append而不是insertAfter不会在任一浏览器中创建所需的选择器。但在 ie8 中它根本不会创建任何东西

解决方案是什么?任何见解表示赞赏

4

2 回答 2

0

你可以试试

 $('#attachment-deletion').after(attachmentDeleteMainModalClone);
于 2013-06-17T22:20:49.300 回答
0

在 IE8 中,我在$rows.insertAfter($(elem))行中有一个异常,所以我用这个解决方案修复了它:

            var $rows = $("tr", $(parsedXML));
            try {
                $rows.insertAfter($(elem));
            } catch (error) {
                // we got <table><tbody><tr... from the server and need to paste only all <tr> from it after our tr in $(elem)
                var divData = $("table", $(parsedXML));
                var divTmp = document.createElement("div");
                divTmp.innerHTML = divData[0].xml;
                var children = divTmp.firstChild.firstChild;
                var fragment = document.createDocumentFragment();
                var current = children.firstChild;

                while (current) {
                    fragment.appendChild(current.cloneNode(true));
                    current = current.nextSibling;
                }

                elem.parentNode.insertBefore(fragment, elem.nextSibling);
            }

抱歉,“.firstChild.firstChild”并不那么干净,但对我有用。我们从服务器获取,只需要在我们的 tr 之后<table><tbody><tr...粘贴所有内容<tr>$(elem)

于 2018-09-05T08:24:01.633 回答