Chcę umieścić wszystkie atrybuty w elemencie HTML w tablicy: tak jak mam obiekt jQuery, który html wygląda tak:
<span name="test" message="test2"></span>
teraz jednym ze sposobów jest użycie opisanego tutaj parsera xml , ale potem muszę wiedzieć, jak uzyskać kod HTML mojego obiektu.
innym sposobem jest zrobienie tego za pomocą jquery, ale jak? liczba atrybutów i nazwy są ogólne.
Dzięki
Btw: Nie mogę uzyskać dostępu do elementu z document.getelementbyid lub czymś podobnym.
getElementById
-var el = document.getElementById($(myObj).attr("id"));
get
metody ... np .:var obj = $('#example').get(0);
Możesz użyć tej prostej wtyczki jako $ ('# some_id'). GetAttributes ();
źródło
Prosty:
źródło
Attr.nodeValue
jest przestarzały na korzyśćvalue
, mówi Google Chrome. Więc to może byćthis.name + ':' + this.value
. Interfejs AttrPonieważ w IE7 elem.attributes wymienia wszystkie możliwe atrybuty, nie tylko te obecne, musimy przetestować wartość atrybutu. Ta wtyczka działa we wszystkich głównych przeglądarkach:
Stosowanie:
źródło
Setter and Getter!
Posługiwać się:
źródło
jQuery.attr
.jQuery.attr
w seterze, ale prawdopodobnie byłoby korzystne użycie go również w getterze.Służy
.slice
do konwersjiattributes
właściwości na Arrayattributes
Właściwość węzłów DOM jestNamedNodeMap
, która jest tablicą podobny obiekt.Obiekt podobny do tablicy to obiekt, który ma
length
właściwość i którego nazwy właściwości są wyliczane, ale poza tym ma własne metody i nie dziedziczy poArray.prototype
slice
Metoda może być użyty do konwersji obiektów Array podobny do nowej tablicy .źródło
attrs
możesz uzyskać dostęp do nazwy atrybutu zname
właściwością elementu.To podejście działa dobrze, jeśli chcesz pobrać wszystkie atrybuty z nazwą i wartością w obiektach zwracanych w tablicy.
Przykładowe dane wyjściowe:
Jeśli chcesz mieć tylko tablicę nazw atrybutów dla tego elementu, możesz po prostu zmapować wyniki:
źródło
Roland Bouman „s odpowiedź jest najlepszy, prosty Vanilla sposób. Zauważyłem kilka prób wtyczek jQ, ale po prostu nie wydawały mi się one wystarczająco „pełne”, więc stworzyłem własne. Jak dotąd jedyną przeszkodą była niemożność uzyskania dostępu do dynamicznie dodanych atrybutów bez bezpośredniego wywołania
elm.attr('dynamicAttr')
. Jednak zwróci to wszystkie naturalne atrybuty obiektu elementu jQuery.Wtyczka używa prostego wywołania w stylu jQuery:
Możesz również dodać drugi parametr ciągu, aby uzyskać tylko jeden określony atrybut. Nie jest to naprawdę potrzebne do wyboru jednego elementu, ponieważ jQuery już zapewnia
$(elm).attr('name')
, jednak moja wersja wtyczki pozwala na wiele zwrotów. Na przykład połączenie typuSpowoduje to
[]
zwrócenie tablicy obiektów{}
. Każdy obiekt będzie wyglądał następująco:Podłącz
Spełnione
jsFiddle
Pokaż fragment kodu
źródło
O wiele bardziej zwięzłe sposoby:
Stary sposób (IE9 +):
Sposób ES6 (Edge 12+):
document.querySelector()
zwraca pierwszy element w dokumencie, który pasuje do określonego selektora.Element.attributes
zwraca obiekt NamedNodeMap zawierający przypisane atrybuty odpowiedniego elementu HTML.[].map()
tworzy nową tablicę z wynikami wywołania podanej funkcji dla każdego elementu w tablicy wywołującej.Próbny:
Pokaż fragment kodu
źródło
czy to pomaga?
Ta właściwość zwraca wszystkie atrybuty elementu do tablicy. Oto przykład.
Aby uzyskać atrybuty wielu elementów i je uporządkować, proponuję utworzyć tablicę wszystkich elementów, przez które chcesz przechodzić, a następnie utworzyć tablicę podrzędną dla wszystkich atrybutów każdego elementu przechodzącego w pętli.
To jest przykład skryptu, który przejdzie przez zebrane elementy i wydrukuje dwa atrybuty. Ten skrypt zakłada, że zawsze będą dwa atrybuty, ale można to łatwo naprawić poprzez dalsze mapowanie.
źródło
W każdej odpowiedzi brakuje najprostszego rozwiązania przy użyciu metody elementu getAttributeNames !
Pobiera nazwy wszystkich bieżących atrybutów elementu jako zwykłą tablicę, którą można następnie zredukować do ładnego obiektu kluczy / wartości.
źródło
Wyobraź sobie, że masz element HTML, jak poniżej:
Jednym ze sposobów uzyskania wszystkich atrybutów jest przekonwertowanie ich na tablicę:
A poniżej znajduje się ciąg, który otrzymasz (z przykładu), który zawiera wszystkie atrybuty:
źródło
Spróbuj czegoś takiego
a następnie pobierz wszystkie atrybuty
dla tablicy użycia atrybutów
źródło
mając
<div id="mydiv" a='1' b='2'>...</div>
może używaćźródło
Bardzo prosty. Wystarczy, że przejdziesz pętlę nad elementem atrybutów i wepchniesz ich wartości nodeValues do tablicy:
Jeśli chcesz nazwę atrybutu, możesz zamienić „nodeValue” na „nodeName”.
źródło
Atrybuty konwersji obiektu
* Wymaga: lodash
Spowoduje to przekonwertowanie wszystkich atrybutów HTML na obiekt zagnieżdżony
Przykładowy kod HTML:
<div custom-nested-path1="value1" custom-nested-path2="value2"></div>
Wynik:
{custom:{nested:{path1:"value1",path2:"value2"}}}
Jeśli parseJson jest ustawiona na true, wartości json zostaną przekonwertowane na obiekty
źródło
W javascript:
Aby uzyskać dostęp do nazw i wartości atrybutów:
źródło