2017-10-19 1 views
0

Für diese allgemeine Struktur:Warum ist der folgende Geschwisterausdruck falsch?

<div class="col-xs-10"> 
    <input id="This[0].That" name="This[0].That" ng-model="item.That"> 
</div> 
<div class="col-xs-2"> 
    <input ng-click="removeThat(item)" value="Remove"> 
</div> 

warum ist diese besondere ungültige Syntax:

//input[@id='This[0].That']/following-sibling::/../input[@value="Remove"] 

?

+0

Ist die Eingabe mit dem ng-Klick-Wert von "removeThat (Element)" die einzige in Ihrem Dom entfernen? – JOberloh

+0

Es ist derzeit (andere können über ein Benutzersteuerelement hinzugefügt werden) – MaxRussell

Antwort

1

Ihre direkte Frage zu beantworten, sind Sie eine XPath-Syntaxfehler bekommen, weil following-sibling:: durch ein befolgt werden müssen NCName wie input:

`following-sibling::input` 

Beachten Sie jedoch, dass die input Elemente in Ihren HTML-Beispiel sind nicht Geschwister.

Sie konnten die zweite input basierend auf dem ersten wählen, indem Sie die following:: Achse anstelle:

//input[@id='This[0].That']/following::input[@value="Remove"] 

Natürlich nur für die kleine Probe, ein einfacher XPath würde genügen:

//input[@value="Remove"] 
0

Fügen Sie einfach zu dem hinzu, was Kjhuges gesagt hat, wenn Sie die erste Eingabe zum Anchor benutzen, weil es mehrere Elemente gab, können Sie immer einen Index verwenden, um sie oder mod zu finden ifier tags