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遍历到?
{1}{2}
最多能选
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
给你想遍历的元素加一个className,然后选择这个特定的className元素进行遍历。
你的描述是N个元素,只需要遍历前N-1的元素,那就给这N-1个元素一个className,比如
vote-preview-diff,再进行遍历each函数中的i代表当前索引值,最后一个索引值等于匹配元素的长度减去1,只要设置if条件 当两者 i==length return true就不会改动最后一个匹配元素
each 之前先 filter 一下呗。
如果你只是不想遍历最后一项,直接把数组的最后一项干掉就行了。数组的length数组可以直接操作数组。用变量保存选取的元素数组,操作length,
length - 1再each。另外,就是添加模板的时候做判断,或者是添加变量count计数,或者是根据判断条件添加特殊类,这样都方便click的时候对元素数组做判断。这都是理论O(∩_∩)O~我会按照这方式去试一试,不过没有帮你实践,抱歉。有问题再讨论,也在撸代码中...
:not()http://api.jquery.com/not-sel...
:lasthttp://api.jquery.com/last-se...
最终:
jQuery('.vote-preview:not(:last)')clone 的模板一般是不能出现 id 属性的,因为 id 属性在整个文档中需要唯一,不过你可以利用这一点