我试图将一个字符串值放在一个数组中,根据它们与具有类名的所有元素的位置。我得到了一个我想要使用的索引数组,我想使用每个索引值来选择适当的值。
$(function ()
{
$("#date").datepicker();
$('input[name=date]').datepicker();
var dateInput = $("select[name='searchString']");
var theClassTime = $("input.TextBoxDate");
var checkedindex = [];
var classday = [];
$("input[name='selectedCourses']").each(function (i)
{
if (this.checked)
{
// this works fine
checkedindex.push(parseInt(i));
// this is where I’m trying to select values based on index.
var dayofclass = $(".TextBoxDate:eq(" + checkedindex[i] + ")");
classday.push(dayofclass);
alert(classday);
}
});
});
Say checkedindex具有值:2,3,9表示在checkedindex的索引0处为2,在1 = 3处且在2 = 9处。我想用2,3和9来做这样的事情:
var dayofclass = $(".TextBoxDate:eq(" + checkedindex[i] + ")");
我在这里做错了什么?
答案 0 :(得分:0)
您不需要按ID查找复选框,您已经有了对它的引用。如果需要元素,可以使用this
,如果需要jquery对象,可以使用$(this)
。
$(function ()
{
$("#date").datepicker();
$('input[name=date]').datepicker();
var dateInput = $("select[name='searchString']");
var theClassTime = $("input.TextBoxDate");
var checkedindex = [];
var classday = [];
$("input[name='selectedCourses']").each(function (i)
{
if (this.checked)
{
// this works fine
checkedindex.push(parseInt(i));
// this is where I’m trying to select values based on index.
// this will get the value of the current checkbox
var dayofclass = $(this).val();
classday.push(dayofclass);
alert(classday);
}
});
});
jsfiddle示例:http://jsfiddle.net/2TJLm/
这基本上是你想要做的吗?
答案 1 :(得分:0)
让事情变得更轻松
只需使用一个数组来存储......
var selectedCourses = $("input[name='selectedCourses']"),
theClassTime = $("input.TextBoxDate"),
checkedindex = [],
go = true;
function dothings() {
selectedCourses.each(function (i) {//for each possible selection
var cur = theClassTime.eq(i);//get current selected
//do something
if (this.checked) {
cur.addClass('red');//for checked
if (go) { checkedindex.push(i); }//store initial selections
} else {
cur.removeClass('red');//for non checked
}
});
go = false;//turn off
alert(checkedindex);//show stored array
}
selectedCourses.on('change', function() { dothings(); });//run on event
dothings();//run initially
made a fiddle 不确定正在使用的标记,因此它只是一个直观的表示
答案 2 :(得分:0)
终于明白了。该代码允许我在页面加载时使用存储在数组中的数据,并在提交表单时对它们进行比较。
<script type="text/javascript">
$(function () {
$("#date").datepicker();
$('input[name=date]').datepicker();
var dateInput = $("select[name='searchString']");
var checkedindex = [];
var classdate = [];
var classtime = [];
var dayofclass = [];
$("input[name='selectedCourses']").each(function (i) {
if (this.checked) {
checkedindex.push(parseInt(i));
}
});
for (var x = 0; x < checkedindex.length; x++) {
var ind = checkedindex[x];
var dateofclass = $(".TextBoxDate:eq(" + ind + ")");
var timeofclass = $(".TextBoxTime:eq(" + ind + ")");
var classday = $("select[name='searchString']:eq(" + ind + ")");
classdate.push(dateofclass);
classtime.push(timeofclass);
dayofclass.push(classday);
alert(classdate[x].val() + " " + classtime[x].val() + " " + dayofclass[x].val());
}
});
</script>