<इनपुट> का विशेषता नाम मान प्राप्त करें


134

JQuery का उपयोग करके इनपुट टैग का विशेषता नाम मान कैसे प्राप्त करें। कृपया मदद कीजिए।

<input name='xxxxx' value=1>

जवाबों:


270

अपने इनपुट को एक आईडी दें और attrविधि का उपयोग करें :

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

33

attrइस तरह jQuery की विधि का उपयोग करें :

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

ध्यान दें कि आप attrदूसरे तर्क निर्दिष्ट करके विशेषता मान सेट करने के लिए भी उपयोग कर सकते हैं :

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

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

इस पोस्ट को स्वचालित रूप से निम्न गुणवत्ता के रूप में चिह्नित किया जा रहा है क्योंकि यह इतना छोटा / केवल कोड है। क्या आप यह समझने के लिए कुछ पाठ जोड़कर इसका विस्तार करेंगे कि यह समस्या को हल कैसे करता है?
गंग -

2
यह वास्तव में समस्या को हल नहीं करता है। ओपी नाम मूल्य प्राप्त करना चाहता है; यह आपको पहले से ही पता है।
felwithe

16

हालांकि इस बात से कोई इनकार नहीं है कि jQuery एक शक्तिशाली उपकरण है, लेकिन इस तरह के तुच्छ ऑपरेशन के लिए इसका उपयोग करना वास्तव में एक बुरा विचार है क्योंकि "एक तत्व का गुण मान प्राप्त करें"।

वर्तमान स्वीकृत उत्तर को देखते हुए, मैं यह मानने जा रहा हूं कि आप अपने तत्व में एक आईडी विशेषता जोड़ने में सक्षम थे और इसे चुनने के लिए उपयोग करें।

इसे ध्यान में रखते हुए, यहाँ कोड के दो टुकड़े हैं। सबसे पहले, आपको स्वीकृत उत्तर में दिया गया कोड:

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

और दूसरा, वेनिला जेएस संस्करण:

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

मेरे परिणाम:

  • jQuery: 300k संचालन / दूसरा
  • जावास्क्रिप्ट: 11,000k संचालन / दूसरा

आप यहां अपने लिए परीक्षा दे सकते हैं । "सादे जावास्क्रिप्ट" vesion 35 गुना तेजी से खत्म हो गया है jQuery के संस्करण की तुलना में है।

अब, यह केवल एक ऑपरेशन के लिए है, समय के साथ आपके पास अपने कोड में अधिक से अधिक सामान होने लगेगा। शायद कुछ विशेष रूप से उन्नत के लिए, इष्टतम "शुद्ध जावास्क्रिप्ट" समाधान को चलाने में एक सेकंड लगेगा। JQuery के संस्करण को पूरे एक मिनट में 30 सेकंड लग सकते हैं! वह तो विशाल है! लोग उसके लिए आस-पास बैठने वाले नहीं हैं। यहां तक ​​कि ब्राउज़र ऊब जाएगा और आपको वेबपेज को बहुत अधिक समय तक मारने का विकल्प प्रदान करेगा!

जैसा कि मैंने कहा, jQuery एक शक्तिशाली उपकरण है, लेकिन इसे हर चीज का जवाब नहीं माना जाना चाहिए ।


अच्छा जवाब, मैंने क्रॉस चेक किया इसलिए जावास्क्रिप्ट सही से अधिक तेज है?
रिजो

इस सवाल का जवाब दिए जाने के 4 साल बाद आपने सवाल का जवाब नहीं दिया। उस व्यक्ति ने पूछा कि इसे jQuery में कैसे करना है। यह प्रोग्रामर पर निर्भर है कि क्या jQuery या वेनिला JS का उपयोग करना है और प्रश्न के दायरे से बाहर है
Zachary Weixelbaum

वेनिला जेएस ?? मजाक करते हुए, मैंने आधे घंटे का शोध किया कि हैक वैनिला जेएस क्या है।
बशीर अल-मोमानी

शायद डेवलपर को पता नहीं है। मैं इस तथ्य से अवगत था कि jQuery जैसी रूपरेखा कुछ ओवरहेड का कारण बनती है। लेकिन मैंने jQuery का उपयोग करते समय कारक 35 में ऐसे सरल कार्यों को धीमा करने की उम्मीद नहीं की थी ...
डैनियल

7

आपको एक चयनकर्ता लिखना होगा जो <input>पहले सही का चयन करता है । आदर्श रूप से आप तत्व की आईडी का उपयोग करते हैं $('#element_id'), यह विफल है कि यह कंटेनर की आईडी है $('#container_id input'), या तत्व की कक्षा $('input.class_name')

आपके तत्व में इनमें से कोई भी नहीं है और कोई संदर्भ नहीं है, इसलिए आपको यह बताना मुश्किल है कि इसे कैसे चुनना है।

एक बार जब आप उचित चयनकर्ता का पता लगा लेते हैं, तो आप तत्व की विशेषताओं तक पहुँचने के लिए attr विधि का उपयोग करेंगे। नाम प्राप्त करने के लिए, आप उसका उपयोग $(selector).attr('name')करेंगे (जो आपके उदाहरण में होगा) 'xxxxx'


5

एक बेहतर तरीका 'यह' का उपयोग किया जा सकता है, यह 'आईडी' का नाम है और इसका उपयोग करता है। जब तक आप 'mytarget' नामक वर्ग नाम जोड़ते हैं।

जब भी कोई भी फ़ील्ड जिसमें लक्ष्य परिवर्तन होता है, तो वह उस फ़ील्ड के नाम के साथ एक अलर्ट बॉक्स दिखाएगा। काम करने के लिए बस पूरी स्क्रिप्ट को काटें और अतीत करें!

<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

मूल्य का उपयोग कर इनपुट नाम प्राप्त करें

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

आईडी का उपयोग करके इनपुट नाम प्राप्त करें

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

कक्षा का उपयोग करके इनपुट नाम प्राप्त करें

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

0

यदि आप एक ही तत्व के साथ काम कर रहे हैं, तो आपको idचयनकर्ता का उपयोग करना चाहिए जैसा कि GenericTypeTea उत्तर पर बताया गया है और जैसा नाम मिलता है $("#id").attr("name");

लेकिन अगर आप चाहते हैं, जैसा कि मैंने किया था जब मुझे यह प्रश्न मिला, एक विशिष्ट वर्ग के सभी इनपुट नामों के साथ एक सूची (मेरे उदाहरण में वर्ग के साथ सभी अनियंत्रित चेकबॉक्स के नामों के साथ एक सूची .selectable-checkbox) आप कुछ ऐसा कर सकते हैं:

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

या

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

0

क्लास टैग से इनपुट टैग और कक्षा का उपयोग करके नाम मान तक पहुंचें।

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

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

या आप id का उपयोग करके भी मान प्राप्त कर सकते हैं।

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

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

-2

नीचे की पंक्ति के लिए, शुरू में एकल कोड देने के साथ समस्या का सामना करना पड़ा कि 'curnetRowAppName'value स्ट्रिंग के साथ जगह नहीं ले रहा है। तो, उसके बाद सिंगल कोड देना'"+row.applicationName+"' , उसका स्थान लेना भी।

उदाहरण:

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

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

यह ठीक काम कर रहा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.