Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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函数中使用jQuery语句_Javascript_Jquery - Fatal编程技术网

在普通javascript函数中使用jQuery语句

在普通javascript函数中使用jQuery语句,javascript,jquery,Javascript,Jquery,在ready之外的普通javascript函数中使用jQuery语句是好还是坏的做法?如果不是,正确的方法是什么 //** End ready **// function doSomething() { selectedClickBoxIndex = parseInt( jQuery('.' + clickBoxOnClass ).attr('value') ); // Javascript code } 为什么不这样做可以减少代码行,而且jquery与所有浏览器都兼容

在ready之外的普通javascript函数中使用jQuery语句是好还是坏的做法?如果不是,正确的方法是什么

//** End ready **//

function doSomething() {
    selectedClickBoxIndex = parseInt( jQuery('.' + clickBoxOnClass ).attr('value') );

    // Javascript code  
}

为什么不这样做可以减少代码行,而且jquery与所有浏览器都兼容呢。当您包含jquery文件时,您正在扩展您的功能,可以在任何地方自由使用,这是完全可以接受的;只要确保在加载DOM后调用这些函数,无论是从document ready还是其他类似的函数。

这一点都没有错

您需要确保的是,在DOMReady之前没有对DOM节点进行任何引用。无论是使用
$('.someClass')
还是
document.getElementsByClassName
,这都是正确的


您的函数确实进行了这样的引用,但只要在DOMReady之前没有调用函数本身,就可以了。

没有理由不在document.ready之外使用它。它使遍历和修改dom变得更加容易


通过许多有用的jquery选择器获取页面上的元素的能力是在其他地方使用它的充分理由。

这没有什么错。jQuery只是一个Javascript库,它们之间没有严格的分离

您可能希望使用函数
val
,但是:

function doSomething() {
  selectedClickBoxIndex = parseInt( jQuery('.' + clickBoxOnClass ).val() );

  // Javascript code  
}

只要函数doSomething()是在onLoad事件之后触发的,就完全可以这样做$(文档)。ready只是一种将JS执行推迟到页面完全加载的方式。

是的,当然是。你可以在任何你想要和需要的地方使用jQuery函数。据我所知,jQuery是javascript的一个有效的速记替代品,可以引入不引人注目的脚本。。因此,我不推荐将jQuery与javascript结合使用,因为这会破坏jQuery的目的,而且当多人混合使用js和jQuery时,代码的模块化和一致性也会受到影响,这使得查看变得非常困难at@optimusprime619jQuery不是JavaScript的替代品——它是JavaScript。事实上,不使用JavaScript就不可能使用jQuery。@JamesPoulson注意,要获取元素的值,您可能应该使用
.val()
,而不是
.attr(“value”)
…@Pointy我在使用“实现”的上下文中使用了world替代方法(是的),我知道它实际上是javascript。实际上,您可以在准备好之前调用它,只需确保它是在您希望脚本处理的特定元素被解析之后调用的。jQuery不会扩展功能。jQuery没有任何东西是不能没有它的。它只是使现有的功能更容易实现。@ElliotBonneville:有时。