Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以下代码的简捷或高效_Javascript_Jquery_Case_Shorthand_Performance - Fatal编程技术网

Javascript 以下代码的简捷或高效

Javascript 以下代码的简捷或高效,javascript,jquery,case,shorthand,performance,Javascript,Jquery,Case,Shorthand,Performance,这是关于堆栈溢出的第一个问题。我通常从搜索中找到所有答案,但在编写以下代码后,我完全失去了动力 有没有更有效的方法或简捷的方法来编写以下代码 目前它正是我想要的。单击单选按钮时,将在该单选按钮旁边加载一个div。如果切换单选按钮,它将删除div并在该单选按钮旁边创建一个新的div 我还没有真正编写自己的JavaScript/jQuery。我知道这个案子,但我不完全确定这是否是一个好的情况 如有任何建议,将不胜感激 jQuery(document).ready(function($) { va

这是关于堆栈溢出的第一个问题。我通常从搜索中找到所有答案,但在编写以下代码后,我完全失去了动力

有没有更有效的方法或简捷的方法来编写以下代码

目前它正是我想要的。单击单选按钮时,将在该单选按钮旁边加载一个div。如果切换单选按钮,它将删除div并在该单选按钮旁边创建一个新的div

我还没有真正编写自己的JavaScript/jQuery。我知道这个案子,但我不完全确定这是否是一个好的情况

如有任何建议,将不胜感激

 jQuery(document).ready(function($) {

var checkedItem = true;

$('form input').click(function(){

    if (checkedItem == true){
        $(this).siblings('div.next').remove('.checked');
        $(this).after('<div class="next">NEXT</div>');
        $(this).siblings('div.next').addClass('checked');

        checkedItem = false;

    }
    else {
        $(this).siblings('div.next').remove('.checked');
        $(this).after('<div class="next">NEXT</div>');
        $(this).siblings('div.next').addClass('checked');

        checkedItem = true;     
    }

});

 });


    <form id="input-form">
<input class="PAD" type="radio" name="Seasons" value="Spring-Fall" /> Spring-Fall<br />
<input class="PAD" type="radio" name="Seasons" value="Winter" /> Winter
</form> 
jQuery(文档).ready(函数($){
var checkedItem=true;
$(“表单输入”)。单击(函数(){
如果(checkedItem==true){
$(this.sides('div.next')。删除('.checked');
$(this.after('NEXT');
$(this).sides('div.next').addClass('checked');
checkedItem=false;
}
否则{
$(this.sides('div.next')。删除('.checked');
$(this.after('NEXT');
$(this).sides('div.next').addClass('checked');
checkedItem=true;
}
});
});
春秋
冬天
您的“checkedItem”布尔值有什么用途

这样的函数似乎可以完成相同的任务(请参见):

$(“表单输入[type=radio]”)。单击(函数(){
$('.next').remove('.checked'))
var$this=$(this);
$this.after('NEXT');
$this.sides('.next').addClass('checked');
});
您可以根据DOM的其余部分的外观调用remove()。

您的“checkedItem”布尔值有什么用途

这样的函数似乎可以完成相同的任务(请参见):

$(“表单输入[type=radio]”)。单击(函数(){
$('.next').remove('.checked'))
var$this=$(this);
$this.after('NEXT');
$this.sides('.next').addClass('checked');
});

您可以根据DOM的其他部分的外观调用remove()。

如果您使用的是jQuery 1.7+,您可以:

HTML


春秋
冬天
jQuery

$(函数(){
$(“输入[type=radio]”。单击(函数(){
如果($(this).is(“:checked”)){
$(this).sides('.next').remove('.checked');
$(this.after('NEXT');
$(this).sides('.next').addClass('checked');
}
否则{//仅供参考,这个,或者你的var是一种无用的冗余,但只是为了展示,给你
$(this).sides('.next').remove('.checked');
$(this.after('NEXT');
$(this).sides('.next').addClass('checked');
};
});
});
尽管您可以通过以下方式轻松简化整个过程:

$(function() {
    $("input[type=radio]").click(function() {
        $(this).siblings('.next').remove();
        $(this).after($("<div />").addClass("next checked").text("NEXT"));
    });
});
$(函数(){
$(“输入[type=radio]”。单击(函数(){
$(this.sides('.next').remove();
$(此).after($(“”).addClass(“下一个选中”).text(“下一个”);
});
});

如果您使用的是jQuery 1.7+,您可以:

HTML


春秋
冬天
jQuery

$(函数(){
$(“输入[type=radio]”。单击(函数(){
如果($(this).is(“:checked”)){
$(this).sides('.next').remove('.checked');
$(this.after('NEXT');
$(this).sides('.next').addClass('checked');
}
否则{//仅供参考,这个,或者你的var是一种无用的冗余,但只是为了展示,给你
$(this).sides('.next').remove('.checked');
$(this.after('NEXT');
$(this).sides('.next').addClass('checked');
};
});
});
尽管您可以通过以下方式轻松简化整个过程:

$(function() {
    $("input[type=radio]").click(function() {
        $(this).siblings('.next').remove();
        $(this).after($("<div />").addClass("next checked").text("NEXT"));
    });
});
$(函数(){
$(“输入[type=radio]”。单击(函数(){
$(this.sides('.next').remove();
$(此).after($(“”).addClass(“下一个选中”).text(“下一个”);
});
});

在jquery选择中,您不必执行“div.next”之类的操作。如果它有next类,只需使用“.next”就可以了。您是在寻找更高效、更易于阅读的东西,还是在运行时更高效?另外,
if
中的前三行与
else
分支中的前三行完全相同-这是一个错误吗?对
$(此)
的多次调用效率非常低,请创建一个引用并使用它,例如
var input=$(此)然后使用
输入
您使用过的所有地方
$(此)
。。。。或者,通过策略性地使用
.end()
$(此)
将chain.Beetroot-接受您的建议并与Spyk3HAnswer链接。在jquery选择中,您不必执行类似于“div.next”的操作。如果它有next类,只需使用“.next”就可以了。您是在寻找更高效、更易于阅读的东西,还是在运行时更高效?另外,
if
中的前三行与
else
分支中的前三行完全相同-这是一个错误吗?对
$(此)
的多次调用效率非常低,请创建一个引用并使用它,例如
var input=$(此)然后使用
输入
您使用过的所有地方
$(此)
。。。。或者,通过策略性地使用
.end()
$(此)
将链。甜菜根-接受您的建议并用SpYk3HH答案链接。
此。选中的
$(此)更有效且更易于阅读。是(“:选中”)
。谢谢。我很累,整天都在做一个项目。“呃,西红柿”——这个问题是关于效率的。(现在请原谅,我有一些土豆条要吃。)“西红柿西红柿”-我很了解他。我的观点很简单,这个.checked似乎更有效,直到你考虑到它不符合标准的jQuery(因此,如果你重新定义它,就不太“容易阅读”)
$(function() {
    $("input[type=radio]").click(function() {
        if ($(this).is(":checked")) {
            $(this).siblings('.next').remove('.checked');
            $(this).after('<div class="next">NEXT</div>');
            $(this).siblings('.next').addClass('checked');
        }
        else { // fyi, this, or your var is kinda useless redundancy, but just for purpose of show, here ya go
            $(this).siblings('.next').remove('.checked');
            $(this).after('<div class="next">NEXT</div>');
            $(this).siblings('.next').addClass('checked');
        };
    });
});
$(function() {
    $("input[type=radio]").click(function() {
        $(this).siblings('.next').remove();
        $(this).after($("<div />").addClass("next checked").text("NEXT"));
    });
});