WEB开发网
开发学院网页设计JavaScript 用 E4X 和 Prototype 创建 Ajax mindreader 应用程... 阅读

用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 1 部分: 构建 Twenty Questions 基础结构

 2010-03-09 00:00:00 来源:WEB开发网   
核心提示: 这里有一个可以打开和关闭的 div(最初是关闭 的),其中有一个用来插入文本的 span,用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 1 部分: 构建 Twenty Questions 基础结构(7),为了插入文本,需要能够选择一个特定的 XML 元素

这里有一个可以打开和关闭的 div(最初是关闭 的),其中有一个用来插入文本的 span。为了插入文本,需要能够选择一个特定的 XML 元素。

过滤节点

通过 E4X,可以用过滤器选择一个或多个节点,见清单 5。

清单 5. 使用过滤器

... 
knowledgeBase = new XML(kdata);   
 
var currentQuestion = 1; 
 
 
//****************************** 
//  BEGIN FUNCTIONS HERE 
//****************************** 
function ask_question(){ 
 
  var questionElement = knowledgeBase.questions.question.(@id == currentQuestion) 
  
  var questionDisplay = questionElement.display; 
  document.getElementById("displayQuestion").innerHTML = questionDisplay ; 
   
  show_form("questionFormDiv"); 
 
} 
 
function hide_form(divName){ 
  document.getElementById(divName).style.visibility = "hidden" ; 
} 
function show_form(divName){ 
  document.getElementById(divName).style.visibility = "visible" ; 
} 

在装载 HTML 页面时,它调用 answer_question() 函数,这会创建第一个问题。第一步是创建一个变量 questionElement,它保存代表第一个问题的 XML。(因为需要知道当前的问题,所以这个变量应该是全局变量。尽管这不是理想的编程实践,但是这并不是一个生产应用程序。)

请注意 ask_question() 开头的语法。它很像 XPath 谓词,而且工作方式也是一样的。在这个示例中,选择知识库,移动到根元素的 questions 子元素,然后找到 questions 元素的所有 question 子元素。然后,过滤掉所有与过滤器不相符的 question 元素 — 换句话说,只留下您需要的问题。

编缉推荐阅读以下文章

  • 用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 2 部分: 使 mindreader 应用程序更智能化

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:EX Prototype 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接