jQuery соответствует строке - PullRequest
1 голос
/ 18 июля 2010

Мне нужно сериализовать соответствующий набор, чтобы его значения могли быть переданы в мое приложение rails.

Код соответствующего набора: (возвращает родительский div для каждого неинициализированного элемента select):

jQuery('select').filter(function(index){
     return jQuery(this).val() == 0;}).closest('div')

для сериализации мне действительно нужен только идентификатор каждого соответствующего элемента, поэтому я попытался:

jQuery('select').filter(function(index){
     return jQuery(this).val() == 0;}).closest('div').attr('id')

К сожалению, attr() работает только с первым элементом в соответствующем наборе.

Так какрезультирующий javascript будет отправлен через рельсы remote_function :with Я полагаю, что javascript может быть только одним оператором.

Как можно сопоставить сопоставленный набор или to-string'd?

Ответы [ 3 ]

2 голосов
/ 18 июля 2010

Для разнообразия, вот ответ, используя map:

result = jQuery('select')
    .filter( function(index){
        return jQuery(this).val() == 0;
    })
    .closest('div')
    .map( function(){
        return this.id;
    })
    .get()       // stop here if you want an array
    .join(',');  // or here if you want a string
1 голос
/ 18 июля 2010

Для еще больше разнообразия, вот один с меньшим количеством циклов:

var idString = $('select').map(function(){
    var select = $(this);
    return select.val() == 0 ? select.closest('div').attr('id') : null;
}).get().join(',');
0 голосов
/ 18 июля 2010
var result = [];

jQuery('select').filter(function(index){
  return jQuery(this).val() == 0;
}).closest('div').each( function() {
  result.push(this.id);
});

var resultStr = result.join(',');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...