GetElementById // radio auswahl mit gleichem name

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von duti.

    GetElementById // radio auswahl mit gleichem name

    Hi Leute.

    Ich suche nach einer Lösung.
    Ich will mit GetElementById eine radio auswahl ansprechen.
    das Problem ist aber nun das die radio auswahl alle den gleichen namen haben.

    wie kann ich doch noch das auswählen was ich brauche?

    radio beispiel:
    <li><input type="radio" name="data" value="a" /><label>A</label></li>
    <li><input type="radio" name="data" value="b" /><label>B</label></li>
    <li><input type="radio" name="data" value="c" /><label>C</label></li>


    mfg und ein guten neues Jahr
    Sicher, dass man hier überhaupt GetElementById verwenden kann? Ich sehe hier bei keinem der Radios eine id-Eigenschaft die zugewiesen wird.
    Wenn du uns mal die Seite verrätst können wir eventuell mal so drüberschauen.
    Ansonsten gehst du halt alle HtmlElements auf der Seite durch und filterst nach Attributen und Namen.
    Da du kein Framework angegeben hast, nenne ich mal zwei Möglichkeiten wie es ausm Kopf klappen könnte:

    VB.NET-Quellcode

    1. ' Mit Linq -> Einzeiler
    2. Dim radioButtonA = (From element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("input").GetElementsByName("data") Where element.GetAttribute("type") == "radio" && element.GetAttribute("value") == "a").FirstOrDefault()
    3. ' Das dann anpassen für B und C

    VB.NET-Quellcode

    1. ' Mit ForEach ->
    2. Dim radioButton As HtmlElement
    3. For Each element As HtmlElement In WebBrowser1.Document.GetElementsByTagName("input").GetElementsByName("data")
    4. If element.GetAttribute("type") = "radio" AndAlso element.GetAttribute("value") = "a" Then
    5. radioButton = element
    6. Exit For
    7. End If
    8. Next


    Da musst halt schon so filtern, dass auch am Ende nur ein Element rauskommen kann (und zwar das, was du suchst).
    Ansonsten wird immer das zuerst gefundene welches mit der Bedingung übereinstimmt gewählt.
    Code is wie gesagt ausm Kopf, hoffe ich hab net wieder C# und VB durcheinander gebracht :P

    MfG Tim
    Ich finge cool das Ihr so viel Zeit habt um immer vor dem Rechner zu sitzen.
    Ich habe es anderst gelöst. Danke trozdem nur ist es eben nicht nötig immer solche Vorwürfe zu machen.
    Zitt: " Immer wieder cool wie manche direkt nach dem ihnen eine Lösung präsentiert wird einfach kommentarlos abhauen "
    Das Wörtchen "immer" stört in dem Satz, dat kannst du nämlich nicht wissen :P
    Ich hab gesehen, dass du in der zwischenzeit online warst und dir durchaus die Lösung angesehen hast. Nur deshalb hab ich das vermutet ;)
    Und wenn man es anders gelöst hat, dann ist es wohl das Mindeste, dass man die Lösung präsentiert und die Nachwelt dann eventuell bei selbigem Problem
    nur hier in den Thread schauen kann ohne direkt einen Neuen anlegen zu müssen :)

    MfG Tim
    Das "immer" kommt, weil ich schon öfters Antworten von VB Gurus gelesen habe und immer wieder dachte wiso so negativ. Ich kann verstehen das sich viele neulinge schwierig verhalten und meistens nur den Code kopieren.
    Aber da bekommt man als Neuling gleich Panik und gleich keine Lust mehr, vorallem traut sich auch niemand mehr etwas zu Fragen.

    Dein Code war nicht das Problem, sondern der Standart WebBrowser von VB zeigt keine JavaScripts an. Ich habe das ganze über Awesomium gemacht, aber auch gemerk das ich das irgendwie garnicht brauche.

    Danke nochmal
    Mfg Duti