如何在没有保护条款的情况下重写jQuery?

时间:2011-05-31 13:45:02

标签: javascript jquery

如何重写这个jQuery更简洁,没有guard子句?

var myTextBox = $('#myTextBox');

if (myTextBox )
    myTextBox.val("");

保护子句只是为了确保在尝试设置它的值之前页面上存在该元素但是代码看起来很臃肿而且大部分都是不必要的。 什么是首选解决方案?

4 个答案:

答案 0 :(得分:6)

如果jQuery对象的长度为$('#myTextBox').val(""),则

0将不执行任何操作,因此只需使用它即可。

答案 1 :(得分:3)

除非你需要缓存选择器以备将来操作,否则我会这样做:

$('#myTextBox').val("")

如果没有选中,则不会枚举任何内容,因此jQuery不会运行val()例程。

答案 2 :(得分:1)

它将像$('#myTextBox').val("");一样工作,如果它找不到任何对象,那么它将只是一个空的jQuery对象而.val()例程将不执行任何操作。

答案 3 :(得分:1)

我相信如果#mytextbox不存在,mytextbox无论如何都不会被定义,它将是一个空的jQuery对象。所以检查是多余的。

我还认为如果你对一个空的jQuery对象执行操作,无论如何都不会发生任何事情,所以你是安全的。