/ / jquery सशर्त - चेक वर्ग = "" और इनपुट प्रकार = "" - jquery, ट्विटर-बूटस्ट्रैप

jquery सशर्त - चेक वर्ग = "" और इनपुट प्रकार = "" - jquery, ट्विटर बूटस्ट्रैप

मैं jquery / जावास्क्रिप्ट और सुंदर के लिए बहुत नया हूँज्यादा घंटे एक घंटे के लिए खुदाई करने के लिए कि मुझे क्या चाहिए, इसलिए समय बचाने की कोशिश में, मैं एक तत्व के वर्ग की जांच करने के लिए एक सशर्त बयान लिखने की कोशिश कर रहा हूं और यह भी कि "प्रकार" विशेषता "पाठ" है। इस कथन ने तब काम किया जब मैं केवल .hasClass का उपयोग कर रहा था, और जब && .is ("[पाठ]") जोड़कर ब्रोक किया। क्या मेरा वाक्य-विन्यास गलत है? मेरे पास यह है, लेकिन यह काम नहीं कर रहा है:

if(!$("input").hasClass("input-block-level") && .is("[text]")) {
$("input").addClass("input-block-level");
}

ऐसा करने का मेरा कारण यह है कि हमारे पास इनपुट हैउन क्षेत्रों को जो गतिशील रूप से अजगर और TMPL_VAR के माध्यम से जोड़े जाते हैं। यह सिर्फ एक बैंड-सहायता है जब तक कि टीम के अन्य सदस्य अजगर की स्क्रिप्ट को बदल नहीं सकते, लेकिन साथ ही एक गिरावट के रूप में अगर हम इसे कहीं और याद करते हैं :)

उत्तर:

जवाब के लिए 3 № 1

आप इस स्थिति को बदलना चाह सकते हैं:

var $input = $("input");
if($input.hasClass("input-block-level") && $input.is("input:text")) {
//your code
}

या, आप तत्वों को प्राप्त करने के लिए अपने चयनकर्ता को बदल सकते हैं type=text अकेला :

var $input = $("input[type=text]");
if($input.hasClass("input-block-level")) {
//your code
}

यह करने के लिए एक और अच्छा तरीका उपयोग कर रहा है filter :

$("input[type=text]").filter(":not(.input-block-level)").addClass("input-block-level");

जवाब के लिए 2 № 2

AddClass () विधि वर्ग को जोड़ती है, लेकिन यह "टी डुप्लिकेट इसे जीता है। आप इसके साथ जा सकते हैं:

$("input[type="text"]").addClass("input-block-level");

फ़ंक्शन सभी पाठ इनपुट तत्वों के माध्यम से चक्र करेगा और कक्षा को जोड़ता है। यदि आपके पास बहुत सारे इनपुट हैं तो यह एक अच्छा समाधान है।

AddClass विधि यह जाँच करेगी कि क्या तत्व में यह वर्ग है या नहीं, आप पहले इसे जाँचने की आवश्यकता नहीं है


जवाब के लिए 2 № 3

जो मैं समझता हूं कि आप एक वर्ग जोड़ने की कोशिश कर रहे हैं input-block-level सेवा मेरे input ऐसे तत्व जिनमें कक्षा नहीं है और प्रकार हैं text

एक साधारण एक लाइनर करेंगे

$("input:text").not(".input-block-level").addClass("input-block-level");

उत्तर के लिए 1 № 4

क्या यही आप ढूंढ रहे हैं?

jsFiddle

if(!$("input:text").hasClass("input-block-level")) {
$("input:text").addClass("input-block-level");
}