混合Javascript和jQuery?

时间:2013-07-10 22:59:48

标签: javascript jquery

主要问题:是否可以使用JavaScript条件然后使用一些jQuery代码?

这是一个当前不起作用的例子:

<script>
//<![CDATA[ 
if (location.pathname == "/SearchResults.asp" 
|| location.pathname.indexOf("-s/") != -1 
|| location.pathname.indexOf("_s/") != -1) 
$('.colors_productname span').css("background-color", "#F7F7F7");
//]]> 
</script>

JavaScript条件由我的电子商务平台(Volusion)提供,仅针对类别页面(jQuery是我的行为)。我问他们这个JavaScript代码是否仍然有效,因为我的网址不包含“/SearchResults.asp”(其中一个实际上是“/Meats-s/3393.htm”),但是他们向我保证它仍然有用。

次要问题:“location.pathname.indexOf”行有什么作用?

5 个答案:

答案 0 :(得分:12)

虽然你可以混合使用,但重要的是要理解jQuery和本机Javascript以不同的方式引用DOM元素。

假设您有一个包含以下元素的文档:

<span id="message_location"><span>

要在常规Javascript中获取该元素,请执行以下操作:

var spanElement = document.getElementById("message_location");

但是,使用jQuery库,您将使用以下语法:

var $spanElement = $("#message_location");

此处必须知道spanElement$spanElement 相同的事情。一个是DOM元素,另一个是数组和jQuery对象,它包含一个值 - span元素。

当从jQuery库和常规Javascript中来回走动时,很容易对你所指的内容感到困惑。

(就个人而言,每当我有一个对DOM元素的jQuery引用时,我总是用$启动变量名。它让我的生活变得简单......)

答案 1 :(得分:6)

jQuery和JavaScript不是单独的语言。 jQuery是一个用Javascript编写的库,因此任何有效的jQuery语句都是有效的JavaScript语句。

Q2: location.pathname是域名后的网址路径。

例如http://www.google.com/s/goo.html - &gt;路径名将返回s / goo.html

所以你的if条件试图找出这个字符串是否包含子字符串“-s”。

答案 2 :(得分:0)

你绝对可以混合它们。

location.pathname.indexOf正在搜索当前URL以查找“_s /”或“-s /”的实例。如果URL不包含这些字符(或者它等于“/SearchResults.asp”),则运行您的jquery代码。

答案 3 :(得分:0)

你应该能够自由地混合两者,小心使用JQuery选择器和常规Javascript dom元素,但两者并不总是相同。 (即,类,多个选择器。)

答案 4 :(得分:0)

jQuery只是一个提供有用方法的javascript对象。所以是的,你可以一起使用vanilla js和jQuery。