W moim pliku HTML, chcę ustawić pole wyboru z określoną nazwą, jak również ID as = checked. Jak mogę to poznać ..?

Na przykład:

<input type="checkbox" name="myName_1" id="1" value="my Value 1"> my Value 1 

Wiem document.getElementById('id').checked = true;, ale to tylko sprawdza id. Muszę sprawdzić id i name jednocześnie przy użyciu JavaScript. Pls pomaga.

Edytuj: Bardziej szczegółowo:

 if(document.getElementById(1) && document.getElementById(1).type == "checkbox" ){
     document.getElementById(1).checked = true;
 }

Uwaga: Mam inne elementy, które mają ten sam identyfikator, ale inna nazwa, a także taka sama nazwa, ale inny identyfikator. Ale nie ma dwóch wspólnych.

2
Thampuran 22 listopad 2013, 19:14

4 odpowiedzi

Najlepsza odpowiedź

Cóż, gdy powiedziałem, że identyfikatory są zawsze wyjątkowe w domu. Dzięki temu elementy z tym samym identyfikatorem jest nie jest poprawny .

Możesz jednak wybrać atrybut nazwy za pomocą getElementsByName, ponieważ ten wybór obsługuje wiele elementów . Po prostu utworzy tablicę, którą możesz połączyć za pomocą wartości indeksu. Więc możesz po prostu pętli przez cały element i sprawdzić je po jednym:

var elem = document.getElementsByName('myName_1');

for(var i = 0; i < elem.length; i++)
{
   elem[i].checked = true;
}

jsFiddle

3
nkmol 22 listopad 2013, 15:33

Posiadanie identyfikatora elementów HTML, zaczynając od liczby jest nieprawidłowy. Zmień nazwę swojego identyfikatora i uczynić go wyjątkowym. Również wartość ID 1 ocenia się na true przez silnik JavaScript. Jeśli jednak twój dokument HTML jest zgodny z HTML5, ID, zaczynając od numeru nie jest problemem.

1
Bud Damyanov 22 listopad 2013, 15:17

Możesz zrobić coś takiego, nie jest idealne, ale rozwiąże problem.

var names = document.getElementsByName(nameToFind);
names.forEach(funciton(item) {
  if (item.id == idToFind)
    item.checked = true;
});
1
Jason 22 listopad 2013, 15:23

Jak wspomniano o kilku komentarzach, nie jest to ważne, aby mieć więcej niż jednego elementu z tym samym identyfikatorem. Jeśli jest więcej niż jeden z tego samego identyfikatora, zachowanie jest zawodne. Jeśli masz grupę elementów, które są podobne, wspólna konwencja z wielu deweloperów jest , daj im wspólną klasę . To może / zastąpić użycie nazwy. Następnie możesz wyszukać na elementach w określonej klasie, która ma określony identyfikator. (Który może być zbędny, w zależności od użycia.)

Wyszukiwanie według klasy odbywa się za pomocą document.getElementsByClassName("myClass"), co zwraca tablicę elementów, podobnych do getElementsByName. Gdy masz tę tablicę, możesz następnie pętli, aby określić, czy identyfikator znajduje się w tej grupie klasowej [patrz uwaga poniżej] i zastosuj efekty w razie potrzeby. (np. {x2}})

Uwaga - byłoby znacznie bardziej wydajne, aby wyszukać identyfikator, a następnie określić klasę, moim zdaniem.

1
Maple 22 listopad 2013, 15:48