【问题标题】:Is it best to use JavaScript or XQuery? [closed]最好使用 JavaScript 还是 XQuery? [关闭]
【发布时间】:2015-04-03 10:41:29
【问题描述】:

我学了一些 Xquery(基础)

例如:

<?xml version="1.0" encoding="utf-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">
  <head>   
    <script type="application/xquery">
      declare sequential function local:set($loc, $evt) {
        b:setStyle(b:dom()//body, "background-color", $loc/@value)
      };
      
      for $button in b:dom()//input[@type="button"]
      return
      b:addEventListener($button, "onclick", local:set#2)
    </script>
  </head>
  <body>
    <h1>Change the background color</h1>
    <input type="button" value="Blue"/>
    <input type="button" value="Red"/>
    <input type="button" value="Green"/>
    <br/>
    <input type="button" value="Black"/>
    <input type="button" value="White"/>
    <input type="button" value="Yellow"/>
  </body>
</html>

这会改变点击时的颜色。现在,x-query 中的编码与 JS 相比如何?可以完全使用 X-query 代替 javascript 吗?哪一个可以更好地控制元素?

我是在浪费时间学习 XQuery 吗?我问这个是因为几乎每个人都只谈论 JavaScript。用 XQuery 代替 JS 可行吗?它们在浏览器支持方面的比较如何?

【问题讨论】:

  • 我会说用js,因为知道xQuery的人不多,假设你用xQuery做项目,一年后别人必须更新它,他会吃很多苦...
  • 点击按钮实际上不会改变背景颜色(Chrome和IE11)

标签: javascript xquery


【解决方案1】:

使用 javascript 你也可以这样做,就像在这个例子中一样。

(我不得不说,对我来说,你的测试在 sn-p 编辑器中并不能真正工作)

您应该很容易识别代码结构,它并没有真正改变这么多。一个用于设置颜色的函数,一个将 setColor 函数与 onclick 事件相关联的函数,以及一个用于获取要设置事件处理程序的项目的查询。

function setColor() {
  document.body.style.background = this.value;
}

function onLoad() {
  var input = document.getElementsByTagName('input'),
    i, len, item;

  for (i = 0, len = input.length; i < len; i++) {
    item = input[i];
    if (item.getAttribute('type') === 'button') {
      item.addEventListener('click', setColor.bind(item));
    }
  }
}

window.onload = onLoad;
<h1>Change the background color</h1>
<input type="button" value="Blue" />
<input type="button" value="Red" />
<input type="button" value="Green" />
<br/>
<input type="button" value="Black" />
<input type="button" value="White" />
<input type="button" value="Yellow" />

在 JQuery 中更简单,你可以这样做:

$(function() {
  $('input[type=button]').on('click', function(e) {
    $(document.body).css('background', e.currentTarget.value);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<h1>Change the background color</h1>
<input type="button" value="Blue" />
<input type="button" value="Red" />
<input type="button" value="Green" />
<br/>
<input type="button" value="Black" />
<input type="button" value="White" />
<input type="button" value="Yellow" />

我会说使用 Javascript 更有意义。那里有很多框架,很多人已经尝试过您很可能会尝试的东西,因此如果您遇到困难或有疑问,您将有更多资源可以研究以找到解决问题的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2014-07-19
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    相关资源
    最近更新 更多