each会遍历整个页面下相关的元素,但是有没有让它直接跳过最后一个的元素,
或者有没有方法可以让它不去遍历某个指定的元素?(例如id="clone"里面的.vote-preview,但不能改动id="clone"的子元素结构)
function checkoption(){
$.each($(".vote-preview"),function(i,item){
var optionlength = $(this).find("p").length;
if(optionlength < 2){
$(".checkoption").val(optionlength);
console.log($(this).html());
return false;
}
});
}
$(document).on('click', '.finish-questionnaire', function(e){
checkoption();
if($(".vote-preview").length < 1){
alert("啥都没填,你还想走?");
return false;
}else if($(".checkoption").val() < 2){
alert("有道题的选项少于2个!");
return false;
}else{
location.href="{:U('index')}";
}
});
最后一个元素在类似下面的模版里,每执行一次某个onclick事件就会添加一次这段模版,然后加载里面相关的参数,有没有办法可以让这个模版不会被上面的jq遍历到?
<div id="clone" style="display:none">
<div class="panel panel-info vote-preview {8}">
<div class="panel-heading">
<h5><span class="label label-warning {4}">{1}</span>{2}</h5>
</div>
<div class="panel-body {3}">
<div class="input-group" style="max-width:300px;">
<span class="input-group-addon">最多能选</span>
<input type="text" name="" class="form-control {7}" placeholder="默认单选,大于1为多选" value="" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" >
<span class="input-group-btn">
<button type="button" class="btn btn-default set-maxoption" onclick="update_question({5})">提交</button>
</span>
</div>
</div>
<div class="panel-fotter">
<button type="button" class="btn btn-primary btn-block del-vote" onclick="delete_question({6})">删除该问题</button>
</div>
</div>
</div>
给你想遍历的元素加一个className,然后选择这个特定的className元素进行遍历。
你的描述是N个元素,只需要遍历前N-1的元素,那就给这N-1个元素一个className,比如
vote-preview-diff
,再进行遍历