रपत - यह पेज देखने के लिए javascript सक्षम की जानी चाहिए




जावास्क्रिप्ट में टेक्स्टबॉक्स के मूल्य प्राप्त करना (4)

मेरे पास यह html कोड है:

<table border="" cellpadding="3" cellspacing="0" id="mytable">

<tbody><tr><td>Song:</td> <td><input type="text" name="song" maxlength="64" size="48" /> </td></tr>
<tr><td>Artist:</td> <td><input type="text" name="artist" maxlength="16" size="48" /> </td></tr>

मैं "गीत" और "कलाकार" के मूल्यों को कैसे प्राप्त करूं? मैं प्रयास कर चुका हूं:

var elTableCells = mytable.getElementsByTagName("td");
alert(elTableCells[2].value);
alert(elTableCells[4].value);

लेकिन मैं "अपरिभाषित" प्राप्त कर रहा हूं, भले ही पाठ बॉक्स के अंदर पाठ हो


टैग नाम यहाँ प्रासंगिक है "इनपुट", नहीं टीडी वह आपको मिलेगा जो आप ढूंढ रहे हैं।

यह लगभग स्टैक ओव्हरफ्लो पर एक क्लिच है, लेकिन मेरा सुझाव है कि आप JQuery पर एक नज़र डालें JQuery आपको अपने एचटीएमएल को एक डाटाबेस के रूप में व्यवहार करने और इस प्रकार की सामग्री पाने के लिए कहे जाने की अनुमति देता है। यदि आपका मार्कअप इस तरह से था:

<input type="text" id="song" maxlength="64" size="48" />

आप इस तरह से मूल्य प्राप्त कर सकते हैं:

$("#id").value();

यदि आप उस पर अधिकतम-लम्बाई विशेषता का मूल्य प्राप्त करना चाहते हैं, तो आप यह कर सकते हैं:

$("#id").attr("maxlength");

तत्व सरणियों के माध्यम से खुदाई करने से ज्यादा मज़ेदार


डाउनलोड jquery

jQuery("input[name='song']").val()

नीचे दिए गए तर्क को हल करने और हल करने के लिए यह नीचे के रूप में सादे जावास्क्रिप्ट से नीचे हो सकता है, लेकिन सादगी और क्रॉस ब्राउज़र मानकीकरण के लिए मैं jQuery की अनुशंसा करता हूं। यह एक व्यापक रूप से प्रयोग किया जाता है और आमतौर पर उच्च अनुशंसित पुस्तकालय है।


alert(document.getElementsByName("song")[0].value);
alert(document.getElementsByName("artist")[0].value);

सबसे पहले, td तत्वों का value विशेषता नहीं है, इसलिए कॉलिंग .value उन पर value कुछ भी नहीं करेगा दूसरा, मान वास्तव में input तत्व पर है, इसलिए आपको इसके बजाय mytable.getElementsByTagName('input') करने की आवश्यकता है। इससे बेहतर भी अपने इनपुट फ़ील्ड आईडी देना होगा और फिर getElementById उपयोग करें इसका मतलब होगा कि आप अपने जेएस ब्रेकिंग के बिना अपने एचटीएमएल को बदल सकते हैं।






textbox