Dapatkan nilai nama atribut <input>

134

Cara mendapatkan nilai nama atribut dari tag input menggunakan jQuery. Tolong bantu.

<input name='xxxxx' value=1>
Kaartz
sumber

Jawaban:

270

Berikan ID Anda input dan gunakan attrmetode:

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

Gunakan attrmetode jQuery seperti ini:

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

Perhatikan bahwa Anda juga dapat menggunakan attruntuk menetapkan nilai atribut dengan menentukan argumen kedua:

$('input').attr('name', 'new_name')
Sarfraz
sumber
18
var value_input = $("input[name*='xxxx']").val();
Laura Riera
sumber
Posting ini secara otomatis ditandai sebagai kualitas rendah karena sangat pendek / hanya kode. Maukah Anda memperluasnya dengan menambahkan beberapa teks untuk menjelaskan bagaimana menyelesaikan masalah?
Gong - Kembalikan Monica
2
Ini sebenarnya tidak menyelesaikan masalah. OP ingin mendapatkan nilai nama; ini mengasumsikan Anda sudah mengetahuinya.
felwithe
16

Meskipun tidak dapat disangkal bahwa jQuery adalah alat yang ampuh, adalah ide yang sangat buruk untuk menggunakannya untuk operasi sepele seperti "dapatkan nilai atribut elemen".

Menilai dari jawaban yang diterima saat ini, saya akan berasumsi bahwa Anda dapat menambahkan atribut ID ke elemen Anda dan menggunakannya untuk memilihnya.

Dengan mengingat hal itu, berikut adalah dua potong kode. Pertama, kode yang diberikan kepada Anda dalam Jawaban yang Diterima:

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

Dan kedua, versi Vanilla JS :

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

Hasil saya:

  • jQuery: 300k operasi / detik
  • JavaScript: operasi 11.000r / detik

Anda dapat menguji sendiri di sini . The "polos JavaScript" vesion lebih dari 35 kali lebih cepat daripada versi jQuery.

Sekarang, itu hanya untuk satu operasi, seiring waktu Anda akan memiliki lebih banyak hal yang terjadi dalam kode Anda. Mungkin untuk sesuatu yang sangat canggih, solusi "murni JavaScript" yang optimal akan membutuhkan satu detik untuk berjalan. Versi jQuery mungkin membutuhkan waktu 30 detik hingga satu menit penuh! Itu luar biasa! Orang tidak akan duduk untuk itu. Bahkan peramban akan bosan dan menawarkan Anda opsi untuk mematikan laman web karena terlalu lama!

Seperti yang saya katakan, jQuery adalah alat yang ampuh, tetapi seharusnya tidak dianggap sebagai jawaban untuk semuanya .

Niet the Dark Absol
sumber
jawaban yang bagus, saya memeriksa silang sehingga javascript lebih cepat dari jquery bukan?
Rijo
Anda menjawab pertanyaan ini 4 tahun setelah pertanyaan diajukan dan Anda tidak menjawab pertanyaan itu. Orang itu bertanya bagaimana melakukannya di jQuery. Terserah programmer apakah akan menggunakan jQuery atau Vanilla JS dan berada di luar ruang lingkup pertanyaan
Zachary Weixelbaum
Vanilla JS! ?? bercanda, saya menghabiskan setengah jam untuk meneliti apa hack Vanilla JS itu.
Basheer AL-MOMANI
Mungkin pengembang tidak tahu. Saya menyadari fakta bahwa framework seperti jQuery menyebabkan beberapa overhead. Tapi saya tidak berharap memperlambat tugas-tugas sederhana seperti itu di faktor 35 saat menggunakan jQuery ...
Daniel
7

Anda harus menulis pemilih yang memilih yang benar <input>terlebih dahulu. Idealnya Anda menggunakan ID elemen $('#element_id'), gagal bahwa ID wadah itu $('#container_id input'), atau kelas elemen$('input.class_name') .

Elemen Anda tidak memiliki semua ini dan tidak ada konteks, jadi sulit untuk memberitahu Anda bagaimana memilihnya.

Setelah Anda menemukan pemilih yang tepat, Anda akan menggunakan metode attr untuk mengakses atribut elemen. Untuk mendapatkan nama, Anda akan menggunakan $(selector).attr('name')yang akan kembali (dalam contoh Anda) 'xxxxx'.

meagar
sumber
5

Cara yang lebih baik bisa menggunakan 'ini', dibutuhkan apa pun nama 'id' itu dan menggunakannya. Selama Anda menambahkan nama kelas yang disebut 'mytarget'.

Setiap kali ada bidang yang memiliki target berubah maka itu akan menampilkan kotak peringatan dengan nama bidang itu. Cukup potong dan lewati seluruh skrip agar berfungsi!

<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 />
Mikeys4u
sumber
1
var theName;

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

menggunakan nilai get input name

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

menggunakan id dapatkan nama input

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

menggunakan kelas dapatkan nama input

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

Jika Anda berurusan dengan satu elemen, sebaiknya Anda menggunakan idpemilih seperti yang dinyatakan pada jawaban GenericTypeTea dan dapatkan nama seperti$("#id").attr("name"); .

Tetapi jika Anda ingin, seperti yang saya lakukan ketika saya menemukan pertanyaan ini, daftar dengan semua nama input dari kelas tertentu (dalam contoh saya daftar dengan nama-nama semua kotak centang yang tidak dicentang dengan .selectable-checkboxkelas) Anda dapat melakukan sesuatu seperti:

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

atau

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

Lulus kelas untuk memasukkan tag dan mengakses nilai nama dengan menggunakan kelas.

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

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

Atau Anda juga dapat mengakses nilai menggunakan id.

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

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

Untuk baris di bawah ini, Awalnya menghadapi masalah dengan tidak memberikan kode tunggal bahwa 'currnetRowAppName'value tidak mengambil ruang dengan string. Jadi, setelah itu berikan kode tunggal'"+row.applicationName+"' , itu mengambil ruang juga.

Contoh:

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

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

Ini bekerja dengan baik.

Senthil Kumar SK
sumber