$$是prototype框架裡的一個亮點了,也是一種快捷方式,通過它可以根據css樣式選擇頁面中的元素,它支持以下幾種css選擇方式。 $支持的CSS選擇符
- 元素標簽(tag)。$$("li")
- 元素ID,id前要加#。$$("#div_test")
- CSS類,類名前加.。$$(".style1")
- 元素是否具有某個屬性。$$("a[class]")
- 元素的某個屬性是否符合特定的條件。$$("a[class='style1']")
- 以上的css選擇符可以自由組合,形成一個復合的CSS選擇符,中間不要有空格。如下:$$("a#link[class='link']")表示id為"link",class為".link"的鏈接元素(A)。
- 不同的css選擇符(以上所有)之間用空格分隔,就組成一個多層的CSS選擇符。如:$$(div p[class='JS'])
以上內容的參考:《征服AJax--dojo、prototype、script.aculo.us框架解析與實例》
$$()函數是Prototype 1.5新增的一個快捷方式,它允許開發人員通過CSS樣式選擇頁面中的元素。熟悉XPath的讀者會發現,CSS選擇符在語法形式上和XML文檔的XPath十分類似,Prototype支持的CSS選擇符包括以下幾種類型:
l 元素標簽名稱,例如:$$(“li”)。
l 元素ID,例如:$$(“#fixtures”)。
l CSS類名,例如:$$(“.first”)。
l 元素是否具有某個屬性,例如:$$(“h1[class]”)。
l 元素的某個屬性是否符合特定的條件,例如:$$('a[href="#"]')、$$('a[class~="internal"]')、$$('a[href!=#]')。
l 上面所有這些CSS選擇符的類型可以自由組合,形成一個復合的CSS選擇符,例如:$$('li#item_3[class][href!="#"]')。
l 不同的CSS選擇符(包括復合CSS選擇符)之間用空格分隔,就組成了一個多層的CSS選擇符,它通過指定目標元素的父節點甚至更多層父節點的CSS樣式屬性來定位目標元素。例如:$$('div[style] p[id] strong')。
例2-8給出了一個$$()函數的測試頁面示例,讀者可以在該頁面中輸入不同的CSS選擇符表達式,測試結果。
例2-8 $$()函數測試頁面
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">
<Html XMLns="http://www.w3.org/1999/xHtml" XML:lang="en" lang="en">
<head>
<title>chapter 3title>
<style type="text/CSS" media="screen">
/* */#testCSS1
{
font-size: 11px;
color: #f00;
}
#testCSS2
{
font-size: 12px;
color: #0f0;
display: none;
}
/* ]]> */style>
<script type="text/Javascript" language="Javascript" src="prototype.JS">script>
<script>
function test() {
// 根據輸入的CSS選擇符,切換相應元素的顯示
$$($F('CSSpath')).each(
function(item) {
Element.toggle(item);
}
);
}
script>
head>
<body>
<form>
<div id="fixtures">
<h1 class="title">
Some title <span>herespan>h1>
<p id="p" class="first summary">
<strong id="strong">Thisstrong> is a short blurb
<a id="link_1" class="first internal" href="#">with a linka> or <a id="link_2"
class="internal highlight" href="#"><em id="em">twoem> a>.
p>
<ul id="list">
<li id="item_1" class="first"><a id="link_3" href="#" class="external"><span id="span">
Another linkspan> a>li>
<li id="item_2">Some textli>
<li id="item_3" XML:lang="es-us" class="">Otra cosali>
ul>
div>
<input type="text" value="" id="CSSpath" />
<input type="button" value="click" onclick="test()" />
form>
body>
Html>