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

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

 2010-03-09 00:00:00 来源:WEB开发网   
核心提示: 接下来,创建新元素,用 E4X 和 Prototype 创建 Ajax mindreader 应用程序,第 2 部分: 使 mindreader 应用程序更智能化(5),仍然使用第 1 部分中使用过的 XML 语法,但是在这里可以使用 JavaScript 变量语法插入新的 ID 和 displ

接下来,创建新元素。仍然使用第 1 部分中使用过的 XML 语法,但是在这里可以使用 JavaScript 变量语法插入新的 ID 和 display 值。注意,ID 属性不带引号;它是一个值;如果加上引号,就会得到 "{thisQuestionId}" 而不是 "3"。

创建 XML 之后,可以从 XML 生成一个 XML() 对象,然后使用 appendChild() 方法把它添加到问题元素中。

然后把新的答案添加到原来的目标中。换句话说,如果应用程序猜测 “a house cat”,而用户说它是 “a lion”,就需要告诉知识库:如果对 “Is it wild?” 针对 “a house cat” 的答案是 “No”(见清单 7)。

清单 7. 添加新目标

...    
  var newQuestionElement = new XML(newQuestionXML); 
  knowledgeBase.questions.appendChild(newQuestionElement); 
 
  //Add new answer to old target 
  var oldAnswer = "Yes"; 
  if (newAnswer == "Yes"){ 
    oldAnswer = "No"; 
  } 
 
  var oldTargetNewAnswer = <answer questionid={thisQuestionId}></answer>; 
  oldTargetNewAnswer["answerValue"+thisQuestionId] = oldAnswer; 
  knowledgeBase..target.(@id==currentGuessId).appendChild(oldTargetNewAnswer); 
... 

首先,根据用户提交的信息获得原来的答案和新答案,并创建一个新的答案元素。在这里使用两种不同的技术。

首先使用变量插入,这在前面已经见过了。

第二种方法是使用散列表示法。注意,这里隐式地创建 oldTargetNewAnswer.answerValue3 元素;如果它不存在,E4X 就创建它。

编缉推荐阅读以下文章

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

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

Tags:EX Prototype 创建

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