Obține valoarea numelui atributului (Programare, Jquery)

Kaartz a intrebat.

Cum se obține valoarea numelui atributului unui tag de intrare folosind jQuery. Vă rugăm să mă ajutați.

<input name='xxxxx' value=1>

11 răspunsuri
djdd87

Dați-i un ID intrării dvs. și folosiți atributul attr metoda :

var name = $("#id").attr("name");

Sarfraz

Utilizați metoda attr din jQuery astfel:

alert($('input').attr('name'));

Rețineți că puteți utiliza și attr pentru a seta valorile atributului prin specificarea celui de-al doilea argument:

$('input').attr('name', 'new_name')

Laura Riera
var value_input = $("input[name*='xxxx']").val();

Comentarii

  • Această postare este marcată automat ca fiind de calitate scăzută, deoarece este atât de scurtă / doar cod. Te-ar deranja să o extinzi adăugând un text care să explice cum rezolvă problema? –  > Por gung – Reinstaurați-o pe Monica.
  • De fapt, nu rezolvă problema. OP vrea să obțină valoarea numelui; acest lucru presupune că o cunoașteți deja. –  > Por felwithe.
  • Acest lucru nu obține valoarea atributului „name” –  > Por Psycho.
Niet the Dark Absol

Deși nu se poate nega faptul că jQuery este un instrument puternic, este o idee foarte proastă să îl folosești pentru o operațiune atât de banală precum „obține valoarea unui atribut al unui element”.

Judecând după răspunsul acceptat în prezent, voi presupune că ați reușit să adăugați un atribut ID la elementul dvs. și să îl folosiți pentru a-l selecta.

Având în vedere acest lucru, iată două bucăți de cod. În primul rând, codul care v-a fost dat în răspunsul acceptat:

$("#ID").attr("name");

Și în al doilea rând, codul Vanilla JS a acestuia:

document.getElementById('ID').getAttribute("name");

Rezultatele mele:

  • jQuery: 300k operații / secundă
  • JavaScript: 11.000k operații / secundă

Puteți testa singur aici. Viziunea „simplu JavaScript” este de peste 35 de ori mai rapidă decât versiunea jQuery.

Asta doar pentru o singură operațiune, în timp veți avea din ce în ce mai multe lucruri care se vor întâmpla în codul dumneavoastră. Poate că pentru ceva deosebit de avansat, soluția optimă „JavaScript pur” ar dura o secundă pentru a fi executată. Versiunea jQuery ar putea dura între 30 de secunde și un minut întreg! Asta este enorm! Oamenii nu vor sta degeaba pentru asta. Chiar și browserul se va plictisi și vă va oferi opțiunea de a închide pagina web pentru că durează prea mult!

După cum am spus, jQuery este un instrument puternic, dar ar trebui să nu fi considerat răspunsul la orice.

Comentarii

  • frumos răspuns, am verificat încrucișat, deci javascript este mai rapid decât jquery, nu? –  > Por Rijo.
  • Ai răspuns la această întrebare la 4 ani după ce a fost pusă și nu ai adresat întrebarea. Persoana a întrebat cum se face în jQuery. Depinde de programator dacă să folosească jQuery sau Vanilla JS și nu intră în sfera de aplicare a întrebării – -.  > Por Zachary Weixelbaum.
  • Vanilla JS!??? glumesc, am petrecut o jumătate de oră căutând ce este hack-ul Vanilla JS. –  > Por Basheer AL-MOMANI.
  • Poate că dezvoltatorul nu știe. Eram conștient de faptul că framework-uri precum jQuery cauzează un oarecare overhead. Dar nu mă așteptam la încetinirea unor sarcini atât de simple în factor 35 atunci când se utilizează jQuery… –  > Por Daniel.
meagar

Trebuie să scrieți un selector care să selecteze corect <input> întâi. Ideal ar fi să folosiți ID-ul elementului $('#element_id'), sau, în caz contrar, ID-ul containerului său $('#container_id input'), sau clasa elementului $('input.class_name').

Elementul dvs. nu are niciuna dintre acestea și nici un context, așa că este greu să vă spun cum să îl selectați.

După ce ați descoperit selectorul corect, ați folosi attr pentru a accesa atributele elementului. Pentru a obține numele, utilizați $(selector).attr('name') care ar returna (în exemplul dvs.) 'xxxxx'.

Mikeys4u

O modalitate mai bună ar putea fi folosirea lui ‘this’, care ia oricare ar fi numele lui ‘id’ și îl folosește. Atâta timp cât adăugați numele clasei numite ‘mytarget’.

Ori de câte ori oricare dintre câmpurile care au țintă se schimbă, atunci va afișa o casetă de alertă cu numele acelui câmp. Trebuie doar să tăiați și să lipiți întregul script pentru ca acesta să funcționeze!

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
 $('.mytarget').change(function() {
var name1 = $(this).attr("name");
alert(name1);
 });
});
</script>

Name: <input type="text" name="myname" id="myname" class="mytarget"><br />
Age: <input type="text" name="myage" id="myage" class="mytarget"><br />

Paddy
var theName;

theName = $("input selector goes here").attr("name");

nirali

folosind valoarea obțineți numele de intrare

 $('input[value="1"]').attr('name');

using id get input name

 $('input[class="id"]').attr('name');
   $('#id').attr('name');

folosind clasa obține numele de intrare

 $('input[value="classname"]').attr('name');
   $('.classname').attr('name');  //if classname have unique value

Antonio Correia

Dacă aveți de-a face cu un un singur element este preferabil să utilizați id așa cum se menționează în răspunsul GenericTypeTea și să obțineți numele ca $("#id").attr("name");.

Dar dacă doriți, așa cum am făcut eu când am găsit această întrebare, o listă cu toate numele elementelor introduse ale unei anumite clase (în exemplul meu, o listă cu numele tuturor căsuțelor de bifat necompletate cu .selectable-checkbox clasă), ați putea face ceva de genul:

var listOfUnchecked = $('.selectable-checkbox:unchecked').toArray().map(x=>x.name);

sau

var listOfUnchecked = [];
$('.selectable-checkbox:unchecked').each(function () {
    listOfUnchecked.push($(this).attr('name'));
});

Sheetal Mehra

Treceți clasa în tag-ul de intrare și accesați valoarea numelui folosind clasa.

<input class="test-class" name='xxxxx' value=1>

<script>
    $('.test-class').attr('name');
</script>

Sau puteți, de asemenea, să accesați valoarea folosind id.

<input id="test-id" name='xxxxx' value=1>

<script>
    $('#test-id').attr('name');
</script>

Senthil Kumar SK

Pentru linia de mai jos, inițial m-am confruntat cu o problemă fără a da un singur cod, deoarece valoarea „currnetRowRowAppName” nu ocupă spațiu cu șirul. Deci, după ce a dat un singur cod '"+row.applicationName+"', , aceasta ocupă și ea spațiu.

Exemplu:

<button class='btn btn-primary btn-xs appDelete' type='button' currnetRowAppName='"+row.applicationName+"' id="+row.id+ >

var viewAppNAME = $(this).attr("currnetRowAppName");
alert(viewAppNAME)

Acest lucru funcționează bine.

Tags: