我有这个脚本,我与我的标签一起使用,这样当用户切换标签时,如果上一个标签上有选中的复选框,它们就会被取消选中(这有助于我使用我的消息系统)
但是,正如您所看到的,问题是该行
var w = document.getElementsByTagName('input');
选择所有输入,当我更改标签时,它会导致我的所有文本框等...变成复选框,无论如何我只能选择复选框而不是输入?
var w = document.getElementsByTagName('input');
for(var i = 0; i < w.length; i++){
if(w[i].type='checkbox'){
w[i].checked = false;
};
};
以下是更改的代码删除了复选框,这是控制整个选项卡过程的整个代码;
$(document).ready(function() {
//Default Action
$(".tab_content").hide(); //Hide all content
$("ul.tabs li").eq(<?php print "$eq_id";?>).addClass("active").show(); //Activate second tab
$(".tab_content").eq(<?php print "$eq_id";?>).show(); //Show second tab content
//On Click Event
$("ul.tabs li").click(function() {
var w = document.getElementsByTagName('input');
for(var i = 0; i < w.length; i++){
if(w[i].type='checkbox'){
w[i].checked = false;
};
};
$("ul.tabs li").removeClass("active"); //Remove any "active" class
$(this).addClass("active"); //Add "active" class to selected tab
$(".tab_content").hide(); //Hide all tab content
var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
$(activeTab).fadeIn(); //Fade in the active content
return false;
});
});
感谢您提供的任何帮助
答案 0 :(得分:2)
因为你正在使用jquery
推荐方式
$('input[type=checkbox]')
或两种弃用的方式
$('input:checkbox')
$(':checkbox')
您还要将它们更改为以下语句中的复选框
if(w[i].type='checkbox'){ // <-- you want == to compare and = to assign
如果你只是使用jQuery ..你只需要选择器并且可以一起删除if语句
$('input[type=checkbox]').prop('checked',false); // <-- changes all checkboxes to unchecked
http://jsfiddle.net/wirey00/UFdza/
以上内容应该适用于jQuery 1.6+,但如果您仍在使用旧库,则可以使用以下内容
$('input[type=checkbox]').attr('checked',false);
http://jsfiddle.net/wirey00/UFdza/1/
编辑 -
您可以替换
$("ul.tabs li").click(function() {
var w = document.getElementsByTagName('input');
for(var i = 0; i < w.length; i++){
if(w[i].type='checkbox'){
w[i].checked = false;
};
};
$("ul.tabs li").removeClass("active"); //Remove any "active" class
$(this).addClass("active"); //Add "active" class to selected tab
$(".tab_content").hide(); //Hide all tab content
var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
$(activeTab).fadeIn(); //Fade in the active content
return false;
});
与
$("ul.tabs li").click(function() {
$('input[type=checkbox]').prop('checked',false); // <-- changes all checkboxes to unchecked
$("ul.tabs li").removeClass("active"); //Remove any "active" class
$(this).addClass("active"); //Add "active" class to selected tab
$(".tab_content").hide(); //Hide all tab content
var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
$(activeTab).fadeIn(); //Fade in the active content
return false;
});
是的,因为Raminson指出:checkbox
选择器已被弃用。不建议使用它们但它们仍然可以使用
答案 1 :(得分:1)
您的情况不应该是if (w[i].type == "checkbox") {
而不是if (w[i].type = "checkbox") {
吗?
如果您要比较使用==
答案 2 :(得分:0)
$('input[type="checkbox"]').each(function(){
$(this).removeAttr('checked');
});