使用jquery获取所有选定的类

时间:2015-06-26 18:03:01

标签: javascript jquery

我有一些元素列表,点击它会将一个类切换到每个元素。

目的是我想用ajax发布它。

我的问题是如何选择具有该指定类的所有元素,并用逗号分隔每个元素“,”

  <ul id="tobeselected">  
      <li class="selected">one</li>
      <li class="selected">two</li>
      <li>three</li>
      <li>four</li>
      <li class="selected">five</li>
  <ul>

  <button>click to alert</button>  
  //end of form

这是jquery的草图我搞砸了:

   $('button').click(function(){

       $('#tobeselect li.selected').each(function() {
            var dataselected = $(this).text();                           
       })
      alert(dataselected);   
      /*
       The expected result would be:
        one | two | five
      */          
   })

但到目前为止还没有运气。请帮忙吗?提前致谢

6 个答案:

答案 0 :(得分:2)

您可以使用map()从元素创建文本值数组,然后使用join()创建逗号分隔的字符串。试试这个:

$('button').click(function(){
   var text = $('#tobeselect li.selected').map(function() {
        return $(this).text();                           
   }).get().join(',');
   console.log(text); 
})

在控制台中你会看到:

"one,two,five"

您可以根据提供给join()函数的值修改分隔符。另请注意,id元素的ul与jQuery选择器中的input元素不匹配。

答案 1 :(得分:2)

这应该可以输出one,two,five

var separator = '';
var dataselected;
$('#tobeselected li.selected').each(function() {
    dataselected += separator + $(this).text();
    separator = ',';
});

答案 2 :(得分:1)

var selectedValues = "";

$('.selected').each(function(){
    selectedValues += $(this).text() + " | ";
});

alert(selectedValues);

答案 3 :(得分:1)

  /*
   The expected result would be:
    one | two | five
  */

尝试使用每个dataselected元素的.text(function(index, text)) .pushtext数组创建数组li.selected;使用参数dataselected数组将alert与名为dataselected

的方法Array.prototype.join联系起来" | "

$("button").click(function() {

  var dataselected = [];

  $("#tobeselected li.selected").text(function(index, text) {
    dataselected.push(text)
  });
  
  alert(dataselected.join(" | "));

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<ul id="tobeselected">
  <li class="selected">one</li>
  <li class="selected">two</li>
  <li>three</li>
  <li>four</li>
  <li class="selected">five</li>
  <ul>

  <button>click to alert</button>

答案 4 :(得分:0)

你输了一个错误,它是<map name="mapa" id="mapa"> 而不是$('#tobeselected li.selected')

答案 5 :(得分:0)

您使用了$('#tobeselect li.selected'),但没有ID为tobeselect的元素。它应该是tobeseleced