2013-11-11 3 views
1

Есть ли лучший способ написать эту функцию? Я почти уверен, что мне нужна только одна функция, но я не знаю, как ее написать!Более эффективный способ записи функции jQuery

(function(jQuery){ 
    jQuery.fn.codeexists = function(code) { 
     var codeexist = false; 
     jQuery('#fault-list-tbl tbody tr').each(function (i, row) { 
      var id = jQuery(this).find('.fault-tbl-code').html(); 
      if (id == code) { 
       codeexist = true; 
      }; 
     }); 
     if (codeexist) { 
      return true; 
     } else { 
      return false; 
     }; 
    }; 
})(jQuery); 
+1

Начать с '(функция ($) {' и свободно использовать аргумент '' $ –

+0

Вам не нужна внешняя функция Является ли это то, что вам 're ask? – bfavaretto

+0

@ RokoC.Buljan Спасибо, но мне нужно использовать 'jQuery', поскольку я работаю с сайтом joomla, поэтому' $ 'вызывает конфликты и т. д. – doovers

ответ

5

Это может быть гораздо проще:

jQuery.fn.codeexists = function(code) { 
    return jQuery('#fault-list-tbl tbody tr .fault-tbl-code').filter(function() { 
     return this.html() === code; 
    }).length > 0; 
}; 

filter фильтрует элементы вниз только те, которые имеют html из code и length как много элементов. Поэтому, если есть более 0 (length > 0) элементов, которые имеют code как их html, он возвращает true.

+0

Он не использует' id = code 'but' html = code', для этого потребуется другая структура html. – megawac

+0

Это не тот вопрос, который задан, он просит проверить html, а не идентификатор. Кроме того, зачем вам нужен такой вложенный запрос? id, затем '#code 'хватит. –

+0

@megawac Упляет, смешивая имена переменных. Ред. – Doorknob

2

Вы также можете написать это следующим образом:.

(function($){ 
    $.fn.codeexists = function(code) { 
     var codeexist = false; 
     $('#fault-list-tbl tbody tr .fault-tbl-code').html(function (i, id) { 
      if (id == code) { 
       codeexist = true; 
      }; 
     }); 
     return codeexist; 
    }; 
})(jQuery); 
+0

Ответ на Doorknob - это терпение, но ваше яснее. –

Смежные вопросы