JQuery получает установленные флажки

Привет я хотел бы получить список установленных флажков страница INA, на самом деле в чем я действительно нуждаюсь, th, получают текст элемента рядом с флажком, который является элементом HTML <li> код ниже и не работа

Вот мой текущий jQuery:

$(document).ready(function () {
  $('#target').click(function () {
    alert("in");
    var checkValues = [];
    $('input[name=checkboxlist]:checked').each(function() {
      alert($(this)val());
      checkValues.push($(this)val());
    });
  });
});

Вот HTML:

<ul id="7b1fe2bd-1b26-4185-8cd9-aec10e652a70">
 <li>Structured Products<input type="checkbox" name="checkboxlist"</li>
 <li>Global FID
 <ul>
  <li>PowerPoint Presentations<input type="checkbox" name="checkboxlist"</li>
  <li>Global Deck
  <ul>
   <li>Test1<input type="checkbox" name="checkboxlist"</li>

   <li>Test2<input type="checkbox" name="checkboxlist"</li>
   <li>Test3<input type="checkbox" name="checkboxlist"</li>

  </ul>
  <input type="checkbox" name="checkboxlist"</li>
  <li>Credit Default Swaps Position
  <ul>
   <li>Test4<input type="checkbox" name="checkboxlist"</li>

   <li>Test5<input type="checkbox" name="checkboxlist"</li>

  </ul>
  <input type="checkbox" name="checkboxlist"</li>
  <li>Thought Leadership<input type="checkbox" name="checkboxlist"</li>
  <li>Fixed Income Perspectives<input type="checkbox" name="checkboxlist"</li>
  <li>Public Policy Information and Regulatory<input type="checkbox" name="checkboxlist"</li>

  <li>Regional FID<input type="checkbox" name="checkboxlist"</li>

 </ul>
 <input type="checkbox" name="checkboxlist"</li>
 <li>Global Rates<input type="checkbox" name="checkboxlist"</li>
 <li>Global Credit Products<input type="checkbox" name="checkboxlist"</li>
 <li>FX<input type="checkbox" name="checkboxlist"</li>

 <li>Emerging Markets<input type="checkbox" name="checkboxlist"</li>
 <li>Commodities<input type="checkbox" name="checkboxlist"</li>
 <li>testcat<input type="checkbox" name="checkboxlist"</li>
 <li>testcat<input type="checkbox" name="checkboxlist"</li>

</ul>
7
задан Nick Craver 26 April 2010 в 11:32
поделиться

4 ответа

Ваши входные данные должны быть закрыты /> в конце, чтобы ваш HTML стал действительным, например:

<input type="checkbox" name="checkboxlist" />

Then вы можете выполнить jQuery следующим образом, чтобы получить массив текста:

$(function () {
  $('#target').click(function () {
    var checkValues = $('input[name=checkboxlist]:checked').map(function() {
        return $(this).parent().text();
    }).get();
    //do something with your checkValues array
  });
});​

Вы можете увидеть, как это работает здесь

Поскольку все, что вам нужно, это родительский .text () с вашим макетом, вы можете использовать .map () для быстрого получения массива свойств на основе селектора.

17
ответ дан 6 December 2019 в 07:25
поделиться
$("input[type=checkbox]:checked").parent().text()
4
ответ дан 6 December 2019 в 07:25
поделиться

Прежде всего, вы должны закрыть свой тег флажка

<input type="checkbox" name="checkboxlist"

должен быть

<input type="checkbox" name="checkboxlist" />

Я думаю, из вашего HTML вы можете получить текст списка, который будет желаемым текст

$(function(){
    $('#target').click(function(){
        var selected = new Array();
        $("input:checkbox[name=checkboxlist]:checked").each(function(){
            var val = $(this).closest("li").text();
            selected.push(val);
        });
    });
});
3
ответ дан 6 December 2019 в 07:25
поделиться

Вы неправильно закрываете теги ввода. Кроме того, $ (this) val () должно быть $ (this) .val () .

Если вы хотите получить текст элемента li, который содержит элемент input, вы можете написать, как показано ниже:

$(this).parents("li:first").text();
0
ответ дан 6 December 2019 в 07:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: