2010-04-11 17 views
33

मैं एक HTML पृष्ठ है।कुछ तत्वों के साथ शुरू होने वाले सभी तत्वों को कैसे प्राप्त करें?

मैं जो नाम सभी तत्वों को निकालने के लिए चाहते हैं के साथ "q1_" शुरू होता है।

मैं कैसे जावास्क्रिप्ट में इस लक्ष्य को हासिल कर सकते हैं?

धन्यवाद!

var $eles = $(":input[name^='q1_']").css("font-color","yellow"); 

कि सभी तत्वों जिसका नाम विशेषता 'q1_' से शुरू होता हड़पने जाएगा:

+0

आप टैग नाम या एक 'विशेषता name' का मूल्य मतलब है के लिए लिंक जोड़ने को ध्यान में रखते? – Gumbo

+0

क्या सभी तत्व एक ही प्रकार के टैग के प्रश्न में हैं? क्या वे सभी डीआईवी हैं, या उदाहरण के लिए एलआईएस? – graphicdivine

+0

हां, सभी तत्व "इनपुट" प्रकार के हैं। JQuery के बिना –

उत्तर

43

एक त्वरित और आसान तरीका jQuery का उपयोग करें और यह करने के लिए है। एक डोम संग्रह करने के लिए jQuery वस्तुओं के परिणामस्वरूप संग्रह बदलने के लिए, ऐसा करते हैं:

var DOMeles = $eles.get(); 

http://api.jquery.com/attribute-starts-with-selector/

देखने के शुद्ध डोम में, आप getElementsByTagName उपयोग करने वाले सभी इनपुट तत्वों, और जिसके परिणामस्वरूप सरणी के माध्यम से लूप हड़पने के लिए कर सकता है। 'Q1_' के साथ शुरू name वाले तत्व एक और सरणी के लिए धक्का दिया हो:

var eles = []; 
var inputs = document.getElementsByTagName("input"); 
for(var i = 0; i < inputs.length; i++) { 
    if(inputs[i].name.indexOf('q1_') == 0) { 
     eles.push(inputs[i]); 
    } 
} 
+9

कुछ भी ?? – Varun

+2

वरुण, करीम 7 9 के जवाब में फिसल गया दूसरा कोड सादा जावास्क्रिप्ट है, वह jQuery का उपयोग नहीं कर रहा है। – cleberz

+0

अच्छा जवाब, सिवाय इसके कि आपको '.css (" रंग "," पीला ") की आवश्यकता है; ', क्योंकि' फ़ॉन्ट-रंग 'सीएसएस में मौजूद नहीं है। मैं यह गलती भी अक्सर करता हूं।: पी –

0

आप Attribute Contains Prefix Selector साथ jQuery उपयोग करने का प्रयास कर सकते हैं।

$('[id|=q1_]') 

हालांकि यह परीक्षण नहीं किया है।

+0

'[attr | = value] 'चयनकर्ता भाषा पहचानकर्ताओं के लिए उपयोग किया जाना चाहिए। – Gumbo

19

आप getElementsByName ("इनपुट") का उपयोग पृष्ठ पर सभी आदानों का एक संग्रह प्राप्त करने के लिए कर सकते हैं। फिर संग्रह के माध्यम से लूप, रास्ते पर नाम की जांच। कुछ इस तरह:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 

</head> 
<body> 

    <input name="q1_a" type="text" value="1A"/> 
    <input name="q1_b" type="text" value="1B"/> 
    <input name="q1_c" type="text" value="1C"/> 
    <input name="q2_d" type="text" value="2D"/> 

    <script type="text/javascript"> 
    var inputs = document.getElementsByTagName("input"); 
    for (x = 0 ; x < inputs.length ; x++){ 
    myname = inputs[x].getAttribute("name"); 
    if(myname.indexOf("q1_")==0){ 
     alert(myname); 
     // do more stuff here 
     } 
    } 
    </script> 
</body> 
</html> 

Demo

+0

कोड उदाहरण के लिए धन्यवाद! –

+0

और अधिक कुशल? – Varun

+0

@ वरुण इस बारे में क्या अक्षम है? – graphicdivine

5

एचटीएमएल डोम querySelectorAll() विधि यहाँ उपयुक्त लगता है।

W3School लिंक दिया here

सिंटेक्स (W3School में दिए गए के रूप में)

document.querySelectorAll(CSS selectors) 

तो जवाब।

document.querySelectorAll("[name^=q1_]") 

Fiddle

संपादित करें:

FLX के सुझाव MDN here

+1

आपका anwer मान्य है, लेकिन W3School एक बुरी स्रोत (अप्रचलित दस्तावेज़ हर जगह) माना जाता है। बेहतर एमडीएन का उपयोग करें, बहुत बेहतर है। – FLX

संबंधित मुद्दे