2012-07-28 16 views
28

मैं निम्नलिखित समारोह का उपयोग कर रहा मेरी रूपों पर एक कॉलम में गद्दी को बदलने के लिए:क्या मैं एक ही समय में एक से अधिक तत्व प्रकार के लिए jQuery खोज() का उपयोग कर सकता हूं?

function padTitles() { 
    $('#option-grid #dataTable tr, #topic-grid #dataTable tr') 
     .each(function() { 
      var tds = $(this).find('input'), 
     text = tds.filter('[id^="input_TempRowKey_"]').val(), 
     tdToPad = tds.filter('[id^="input_Title_"]'), 
     pad; 
      if (/\.0$/.test(text)) { 
       pad = 10; 
       level = 1; 
      } else { 
       pad = 35; 
       level = 2; 
      } 
      tdToPad.css('margin-left', pad); 
      a = tdToPad.closest('tr'); 
      if (tdToPad.closest('tr').get().className) { 
       tdToPad.closest('tr').get().className = tdToPad.closest('tr').get().className.replace(/\blevel\-.*?\b/g, 'level-' + level); 
      } else { 
       tdToPad.closest('tr').addClass('level-' + level) 
      } 
     }); 
} 

यह इस फार्म HTML के लिए अच्छी तरह से काम करता है:

<td id="title_1" class=" "> 
    <input type="text" value="Tests" name="item.Title" id="input_Title_1" > 
</td> 

अब मैं होगा इसके लिए काम भी तरह निम्न HTML:

<td id="title_1" class=" ">  
    <textarea name="item.Title" id="input_Title_1">Tests</textarea> 
</td> 

वहाँ एक रास्ता है कि मैं इस समारोह को बदल सकते हैं है तो इसके लिए या तो एक input या textarea काम करता है? मुझे लगता है कि ऐसा करने का तरीका var tds = $(this).find('input'), को बदलना है, हालांकि मुझे यकीन नहीं है कि इसे कैसे बदला जाए या भले ही टेक्स्टरेरा या इनपुट को "ढूंढें" में बदलना संभव हो।

उत्तर

77

संघ कई प्रश्नों का एक अल्पविराम का उपयोग करें:

var tds = $(this).find('input, textarea'); 

तुम भी एक चयनकर्ता के रूप में :input उपयोग कर सकते हैं, लेकिन यह के रूप में कुशल नहीं है और भी कई तरीके हैं बल्कि शामिल नहीं था शामिल हो सकते हैं।

0

आप td रों बच्चे को चुनने के लिए जो कुछ भी यह है

var tds = $(this).children(); 
0

आप नहीं input रूप में एक ही id के साथ एक textarea जोड़ सकते हैं .children() उपयोग कर सकते हैं। यह गलत है id's एक HTML तत्व के लिए अद्वितीय हैं।

मैं आपको class इसके बजाय सुझाव दूंगा।

<input type="text" value="Tests" class="myclass" name="item.Title" id="input_Title_1" > 

    <textarea name="item.Title" class="myclass" id="input_Title_2">Tests</textarea> 

var tds = $(this).find('.myclass') 
+1

एक फॉर्म टेक्स्टरी का उपयोग करता है, दूसरा इनपुट का उपयोग करता है। क्षमा करें मुझे यह दो अलग-अलग रूपों का उल्लेख करना चाहिए था। – Alan2

+1

यदि दोनों फॉर्म एक ही पृष्ठ में हैं, तो यह अभी भी अमान्य है। – Jashwant

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

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