<input> öznitelik adı değerini alın


134

JQuery kullanılarak bir giriş etiketinin öznitelik adı değeri nasıl alınır. Lütfen yardım et.

<input name='xxxxx' value=1>

Yanıtlar:


270

Girişinize bir kimlik verin ve attryöntemi kullanın :

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

33

attrJQuery yöntemini şu şekilde kullanın :

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

attrİkinci bağımsız değişkeni belirterek öznitelik değerlerini ayarlamak için de kullanabileceğinizi unutmayın :

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

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

Bu gönderi, çok kısa / tek kodlu olduğu için otomatik olarak düşük kaliteli olarak işaretleniyor. Sorunu nasıl çözdüğünü açıklamak için biraz metin ekleyerek genişletebilir misiniz?
gung - Monica'yı eski haline

2
Aslında sorunu çözmez. OP isim değerini almak istiyor; bu zaten bildiğinizi varsayar.
felwithe

16

JQuery'nin güçlü bir araç olduğunu inkar etmek mümkün olmasa da, onu "bir öğenin öznitelik değerini alma" gibi önemsiz bir işlem için kullanmak gerçekten kötü bir fikirdir.

Kabul edilen mevcut cevaba bakılırsa, öğenize bir kimlik özelliği ekleyebileceğinizi ve onu seçmek için bunu kullanabileceğinizi varsayacağım.

Bunu akılda tutarak, işte iki kod parçası. Öncelikle Kabul Edilen Cevapta size verilen kod:

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

İkincisi, Vanilla JS versiyonu:

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

Benim sonuçlarım:

  • jQuery: 300k işlem / saniye
  • JavaScript: 11.000.000 işlem / saniye

Burada kendiniz test edebilirsiniz . "Düz JavaScript" sürümü, jQuery sürümünden 35 kat daha hızlıdır .

Şimdi, bu sadece bir işlem için, zamanla kodunuzda daha fazla şey olacak. Belki de özellikle gelişmiş bir şey için, en uygun "saf JavaScript" çözümünün çalışması bir saniye sürer. JQuery sürümü 30 saniyeden bir dakikaya kadar sürebilir! Bu çok büyük! İnsanlar bunun için ortalıkta oturmayacak. Tarayıcı bile sıkılacak ve size çok uzun sürdüğü için web sayfasını kapatma seçeneği sunacak!

Dediğim gibi, jQuery güçlü bir araçtır, ancak gerektiği değil düşünülmelidir her şeye cevap .


güzel cevap, çapraz kontrol ettim, böylece javascript jquery'den daha hızlı, değil mi?
Rijo

Bu soruyu soru sorulduktan 4 yıl sonra cevapladınız ve soruyu yanıtlamadınız. Kişi jQuery'de nasıl yapılacağını sordu. JQuery veya Vanilla JS kullanıp kullanmamak programcıya bağlıdır ve sorunun kapsamı dışında kalır
Zachary Weixelbaum

Vanilya JS! ?? şaka, Vanilla JS'nin ne olduğunu araştırmak için yarım saat harcadım.
Basheer AL-MOMANI

Belki de geliştirici bilmiyordur. JQuery gibi çerçevelerin bazı ek yüklere neden olduğunun farkındaydım. Ancak jQuery kullanırken bu kadar basit görevleri 35 faktöründe yavaşlatmayı beklemiyordum ...
Daniel

7

Önce doğruyu seçen bir seçici yazmanız gerekir <input>. İdeal olarak, elemanın $('#element_id')ID'sini kullanırsınız, bunun yerine konteynerin ID'sini $('#container_id input')veya elementin sınıfını kullanamazsınız $('input.class_name').

Öğenizde bunların hiçbiri ve bağlamı yok, bu yüzden size nasıl seçeceğinizi söylemek zor.

Doğru seçiciyi bulduğunuzda , öğenin özelliklerine erişmek için attr yöntemini kullanırsınız. Adı almak için, $(selector).attr('name')döneceğini (örneğinizde) kullanırsınız 'xxxxx'.


5

Daha iyi bir yol 'bu' kullanmak olabilir, 'id'nin adı ne olursa olsun alır ve onu kullanır. Hedefim adlı sınıf adını eklediğiniz sürece.

Hedefin değiştiği alanlardan herhangi biri, o alanın adını içeren bir uyarı kutusu gösterecektir. Çalışması için tüm komut dosyasını kesin ve yapıştırın!

<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 />

1
var theName;

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

1

değer kullanarak giriş adı al

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

id kullanarak giriş adı al

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

sınıf kullanarak giriş adı al

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

0

Tek bir öğeyle uğraşıyorsanız, tercihen idseçiciyi GenericTypeTea cevabında belirtildiği gibi kullanmalı ve adını almalısınız $("#id").attr("name");.

Ama isterseniz, bu soruyu bulduğumda yaptığım gibi, belirli bir sınıfın tüm giriş adlarını içeren bir liste (benim örneğimde, .selectable-checkboxsınıfla birlikte tüm işaretlenmemiş onay kutularının adlarını içeren bir liste ) şöyle bir şey yapabilirsiniz:

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

veya

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

0

Sınıfı giriş etiketine geçirin ve sınıf kullanarak ad değerine erişin.

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

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

Ya da değere id kullanarak da erişebilirsiniz.

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

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

-2

Aşağıdaki satır için, başlangıçta 'currnetRowAppName' değerinin string ile yer kaplamadığına dair tek bir kod verilmemesi sorunu ile karşılaşıldı. Yani bundan sonra tek bir kod vererek '"+row.applicationName+"'yer kaplıyor.

Misal:

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

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

Bu iyi çalışıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.