3

尝试使用 insertbefore 插入选项时,出现此错误。未捕获的错误:HierarchyRequestError:DOM 异常 3

var target = $('#divA option:selected').prev().first();
    var options = $('#divA option:selected');
    if (options.prev().text() == target.text()) {
        return;
    }
    options.insertBefore(target);

如果options.length > 2 出现这个错误,如果是1或者2都没有问题。当多选到顶部时,所有选定的项目都将消失。问题是什么?你可以帮帮我吗?

示例:http: //jsfiddle.net/tHVsw/

4

1 回答 1

5

当不允许将元素插入到 DOM 中的特定点(即不可能)时,会引发此错误,您可以使用if语句来检查是否可以插入。

if ( !target.prev().length ) 
    target.parent().prepend(options);
else 
    target.before(options);

如果length目标元素的前一个兄弟元素为0,则将元素添加到父元素之前,否则将其插入到目标元素之前。

http://jsfiddle.net/fKx68/

于 2013-03-19T09:45:20.443 回答