1

我在 3 天前实现了我的第一个 helloworld,现在我想走得更远。

我尝试调用一个函数,并将结果放在我的 html 中。

我的 HelloWorld.dart

import 'dart:html';

main() {
  var s = '';
  for (var i = 0; i < 10; i++) {
    s = '$s$i ';
  }

  HTMLElement element = document.getElementById('text');
  element.innerHTML = 'test';
  //element.innerHTML = s;
  print(s);
}

我的打印(S)工作,它在我的飞镖编辑器输出中打印我:0 1 2 3 4 5 6 7 8 9

但是现在,我想把结果放在我的 html 中。

所以这是我的 HelloWorld.html :

    <!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8">
    <title>HelloWorld</title>
    <link rel="stylesheet" href="HelloWorld.css">
  </head>
  <body>
    <h1>Exercice 01</h1>

    <p>Hello world from Dart!</p>

    <div id="container">
      <p id="text"></p>
    </div>

    <script type="application/dart" src="web/HelloWorld.dart"></script>
    <script src="https://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js"></script>
  </body>
</html>

很简单不是吗?所以实际上我看到我的页面有我的 h1 和我的 p。但是,我在我的 id "text" 中看不到任何内容,我尝试推送我的 var ,但不起作用,所以我尝试推送一个简单的字符串,如您所见(在我的帖子的第一个代码块处返回) ,并且不起作用。

我可能误解了 .html 和 .dart 之间的通信,有人可以帮我吗?

Ps:我的输出没有任何错误。

4

1 回答 1

3

谢谢你的提问!

首先,使用querySelector()而不是 document.getElementById,如下所示:

import 'dart:html';

main() {
  var s = '';
  for (var i = 0; i < 10; i++) {
    s = '$s$i ';
  }

  var element = querySelector('#text');
  element.text = 'test';
  print(s);
}

querySelector() 通过接受 CSS 选择器并返回匹配的第一个元素来工作。要按 ID 查找元素,请使用#the-id语法(或者,在元素的 ID 前加上 a 前缀#)。

代替innerHTML, 使用element.textsetter。

希望有帮助!

于 2012-10-26T01:12:26.717 回答