   Additionally, `id` and `name` attributes are included into a Map.
   """
   def select(socket, options)
-  def select(socket, [{method, argument}, from: selector]) when method in @methods_with_argument do
+  def select(socket, [{method, argument}, from: selector]) 
+  when method in @methods_with_argument or method in @methods_with_argument_plural do
     do_query(socket, selector, jquery_method(method, argument), :select, @no_broadcast)
   end
   def select(_socket, [{method, argument}, from: selector]) do


  # returns next value of the given list (cycle) or the first element of the list
  defp next_value(socket, values, method, selector) when is_list(values) do
    v = socket |> select(method, from: selector)
    one_element_selector_only!(v, selector)
    next_in_list(values, v |> List.first())
  end
  defp next_value(_socket, value, _method, _selector), do: value

  defp next_value(socket, values, method, argument, selector) when is_list(values) do
    v = socket |> select([{method, argument}, from: selector]) 
    one_element_selector_only!(v, selector)
    next_in_list(values, v |> List.first())
  end
  defp next_value(_socket, value, _method, _argument, _selector), do: value


    do_update(socket, broadcast, attr: "class", set: value, on: selector)
  end
  defp do_update(socket, broadcast, :class, toggle: value, on: selector) do
    {:ok, do_query(socket, selector, {:toggleClass, "(\"#{value}\")"}, :update, broadcast)}    
  end
  defp do_update(socket, broadcast, :class, set: values, on: selector) when is_list(values) do
    # switch classes: updates the attr: "class" string with replacement of class, if it is on the list
    c = socket |> select(attrs: "class", from: selector)
    one_element_selector_only!(c, selector)

    classes = Map.values(c) |> Enum.map(&String.split/1) |> List.first()
    replaced = Enum.map(classes, fn c -> 
      if c in values do 
        next_in_list(values, c) 
