إضافة فراز محلل استنادا إلى بيانات عينة من خلية عمود

StackOverflow https://stackoverflow.com/questions/854241

  •  21-08-2019
  •  | 
  •  

سؤال

هذا هو الجزء الأخير من هذا المشروع ، شكرا على كل من ساعد في بناء الجملة تصحيح على أجزاء أخرى.أنا باستخدام tablesorter البرنامج المساعد مسج.أساسا ما أريد تحقيقه هو بلدي مخصص وظيفة الفرز لاختيار رأس الجدول استنادا إلى ما إذا كان أو لم يكن له فئة ، وهي "SortableHeader".ومن ثم يجب أن تقرر ما الفوقية محلل إضافة إلى رأس من أن عمود معين استنادا إلى البيانات في هذا العمود.لقد اتخذت نهج أكثر تعقيدا و قررت أن تأخذ عينة من البيانات من خلية واحدة( قل الصف الأول من العمود) وذلك لمقارنة أنماط مختلفة ، أو التعبيرات العادية ، فراز ثم إضافة البيانات الوصفية الصحيحة محلل بناء على نتيجة المقارنة مثلاإذا كان يتطابق نمط التاريخ ، فراز إضافة تاريخ محلل, إذا كان يطابق نمط عنوان URL ، فإنه يضيف URL محلل, الخ.لدي مسألتين:

  1. أنا لا يمكن معرفة كيفية اختيار صف واحد من الأعمدة ، لقد حاولت البحث لكن أجد إلا دروس يجتاز جميع الصفوف في جدول بدلا من اختيار صف واحد من عمود استنادا إلى رأس العمود المعلومات.

  2. أنا لست متأكدا من كيفية القيام أنماط و/أو التعبيرات العادية في مسج.على سبيل المثالكيف سيكون موعد التعبير العادي/نمط يبحث عن مواعيد شكل 2 مارس ، 2009, ابحث في مسج??

لدي حاليا العريضة التالية

    //Add parser to each table header that has a class="SortableHeader"
    $("th[class='SortableHeader']").each(function(column){
        //Take a sample of data from a single cell in this column 
        // compare it to various patterns to determine what type 
       //of data it contains in order to apply the appropriate parser   
    });

عينة رأس القسم على أداء نوع البحث على أن يكون:

<table id="myTable" summary="Table is used to list available workshops"  cellspacing="0">
            <thead>
                <tr>
                    <th class="SortableHeader"><a rel = "Header" href="#" title="Sort title in decending order" class="">Title</a></th>
                    <th><a rel = "Header" href="#" title="Sort instructor in descending order" class="">Instructor</a></th>
                    <th class="SortableHeader"><a rel = "Header" href="#" title="Sort column in decending order" class="">Date</a></th>
                    <th>Start/End</th>
                    <th><a rel = "Header" href="#" title="Sort column in decending order" class="">Seats Available</a></th>
                    <th><a rel = "Header" href="#" title="Sort column in decending order" class="">Enrolled</a></th>
                    <th><a rel = "Header" href="#" title="Sort column in decending order" class="">Pre-Requisites</a></th>
                    <th>Workshop Actions</th>
                </tr>
            </thead>

آخر سؤال لدي هو, قد يكون هناك طريقة اسهل بكثير من فعل هذا ؟ ؟ أعتقد أنا يمكن أن تأخذ فقط العنوان من رأس قاعدة محلل محدد ، ولكن أردت أن تجنب هذا لأنه يبدو أن يكون قليلا أقل مرونة ، يجب أن رمز القرص الثابت سلاسل معينة إلى تحقق من عنوان رأس ضد أي شخص تنفيذ هذا فقط سوف تكون قادرة على استخدام تلك السلاسل كعنوان هناك رأس من أجل تطبيق محدد فرز موزعي.أريد ot تجنب هذا إذا كنت تستطيع.

هل كانت مفيدة؟

المحلول

  1. استخدام محدد أن يعود الأعمدة في الصف الأول ، ثم حدد العمود الذي تريد من ذلك.

    فار firstColumn = $("#الجدول TBODY TR:أولا TD")[0];

  2. وأود أن محاولة إجبار قيمة عن تاريخ وأنواع رقمية ، ومن ثم يمكن أن تحصل في الأنواع مطابقة التعبير العادي عندما كنت تبحث في مختلف سلسلة نوع الاختلافات (عناوين المواقع ، الخ...)

  3. إذا كنت ترغب في جعل الأمر أكثر decarative, أود فقط إضافة فئة أخرى إلى رؤوس الأعمدة التي تشير إلى comparer تريد استخدامها في هذا النوع.

    < th class="SortableHeader DataTypeDate">...</th> < th class="SortableHeader DataTypeURL">...< /th>

عند تهيئة أنواع يمكنك استخدام hasClass طريقة لمعرفة ما إذا كان العمود يحتوي على تاريخ معين اكتب المرتبطة به.

$("#myTable THEAD TR:first TH").each(function(column) {
    if ($(this).hasClass("DataTypeDate")) {
        // ...
    }
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top