您好我想在页面中获取所选复选框的列表,实际上我真正需要的是获取复选框旁边元素的文本,这是一个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>
答案 0 :(得分:17)
您的输入需要在最后使用/>
关闭,以使您的HTML有效,如下所示:
<input type="checkbox" name="checkboxlist" />
然后你可以像这样做jQuery来得到一个文本数组:
$(function () {
$('#target').click(function () {
var checkValues = $('input[name=checkboxlist]:checked').map(function() {
return $(this).parent().text();
}).get();
//do something with your checkValues array
});
});
答案 1 :(得分:4)
$("input[type=checkbox]:checked").parent().text()
答案 2 :(得分:3)
首先,您必须关闭复选框标记
<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 :(得分:0)
您没有正确关闭输入标签。此外,$(this)val()
应为$(this).val()
。
如果您打算获取包含input元素的li元素的文本,您可以写如下:
$(this).parents("li:first").text();