我想创建一个函数,在<input>
下面的HTML页面上的标签之间保存数据。
当只有一个时.awardBlock
,我使用function saveData_0()
,并且效果很好。
但是,当我将列表添加.awardBlock
到多个列表并使用function时saveData_1()
,它不起作用-award_class
似乎无法访问的值。结果显示了undefined
当我尝试使用Jquery访问它时。
这困扰着我,整个下午我都进行了调试,但仍然没有结果。感谢您分享您的时间,希望我能在这里解决我的问题。
function saveData_0() {
var prize = {
name : $('.awardBlock').find('input[name=award_class]').val(),
content : "cash"
}
alert("prize name: " + prize.name);
alert("prize content: " + prize.content);
}
function saveData_1() { // when more than one "awardBlock", use this function
var prize = new Array();
var numberOfBlock = $('.awardBlock').length;
for(var i=0; i < numberOfBlock ; i++) {
prize[i] = {
name : $('.awardBlock:eq(i)').find('input[name=award_class]').val(),
content : "cash"
}
}
alert("prize name: " + prize[0] +', ' +prize[0].name);
alert("prize content: " + prize[0] +', ' +prize[0].content);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul display-style:none>
<li class="awardBlock" display-style: none>
<ul>
<li><input type="text" name="award_class" placeholder="一等奖"/></li>
</ul>
</li>
<li class="awardBlock" display-style: none>
<ul>
<li><input type="text" name="award_class" placeholder="二等奖"/></li>
</ul>
</li>
<!-- there maybe more than one "awardBlock" -->
<li><input type="submit" value="save" onclick="saveData_1();"></li>
</ul>
由于所有按钮都只有一个提交按钮,因此您只需创建一个适用于所有awardBlock
s的函数即可:
function saveData() {
$('.awardBlock').each(function(){
var $this = $(this);
var prize = {
name : $this.find('input[name=award_class]').val(),
content : "cash"
}
alert("prize name: " + prize.name);
alert("prize content: " + prize.content);
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句