tut Ich mache einen jQuery mehr Wähler finden:INVALID_NODE_TYPE_ERR in jQuery, wenn mehrere Selektoren auf Chrome
element.find("fieldset, input[type=hidden], input[type=text], :radio")
und in Chrome-Version 1 gibt es diesen Fehler "INVALID_NODE_TYPE_ERR: DOM Bereich Ausnahme 2" auf line 722 of jquery's selector.js
aRange.selectNode(a);
im Kontext:
function(a, b) {
var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
aRange.selectNode(a);
aRange.collapse(true);
bRange.selectNode(b);
bRange.collapse(true);
var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
if (ret === 0) {
hasDuplicate = true;
}
return ret;
}
in diesem Fall a
ist ein verborgenes HTML Eingabefeld. Von dem, was ich finden kann, scheint es ein Problem mit der älteren Webkit-Version zu sein, da dieser Fehler in der neuen Beta von Chrome nicht auftritt (wahrscheinlich, weil es nie diesen Code trifft, weil es document.documentElement.compareDocumentPosition
implementiert siehe).
Um dieses Problem zu treten, habe ich den Multi-Wahlschalter mit vier Einzeln wählen ersetzt, die ich zusammen verschmelzen, die gut funktioniert, aber es ist wirklich hässlich:
elements = element.find('fieldset')
.add(element.find('input[type=hidden]'));
.add(element.find('input[type=text]'));
.add(element.find(':radio'));
Ist das wirklich der einzige Weg, um diese oder kann ich noch etwas anderes machen?
UPDATE Es gibt eine thread about this on the Sizzle discussion forum eine mögliche Patch auf die Sizzle (jQuery-Selektor) Code gepostet wurde, dies seinen Weg in jquery Kern finden. Es scheint nur ein Problem, wenn Sie einen Multiselektor auf dynamischen Code
tritt es auch in anderen Browsern auf? –
Nicht, dass ich weiß, aber ich bin derzeit nicht in der Lage, in Safari auf dem Mac zu testen, aber wenn es ein Problem in Webkit ist, würde ich mir vorstellen, dass es auch dort passiert –