主要问题:是否可以先使用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是我做的)。我问他们,考虑到我的urls没有包含"/SearchResults.asp“(其中一个实际上是"/Meats-s/3393.htm"),这个JavaScript代码是否仍然有效,但他们向我保证,它应该仍然有效。
第二个问题:"location.pathname.indexOf“行是做什么的?
发布于 2013-07-10 23:04:36
jQuery和JavaScript不是独立的语言。jQuery是用Javascript编写的库,因此任何有效的jQuery语句都是有效的JavaScript语句。
Q2:location.pathname
是域名后的url路径。
例如,http://www.google.com/s/goo.html ->路径名将返回s/goo.html
所以if条件试图找出这个字符串是否包含子字符串"-s“。
发布于 2013-07-10 23:08:47
虽然您可以混合使用,但重要的是要理解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引用时,我总是以$
开始变量名。它让我的生活变得简单...)
发布于 2013-07-10 23:03:07
你完全可以混合它们。
location.pathname.indexOf正在当前URL中搜索"_s/“或"-s/”的实例。如果URL不包含这些字符(或者等于"/SearchResults.asp"),则运行jquery代码。
https://stackoverflow.com/questions/17582383
复制相似问题