如何使用Dart获取单击元素的文本内容?

时间:2013-02-18 18:05:40

标签: dart dart-webui

我正在使用dart开发一个应用程序,我想获得一个被点击的元素的价值。即:

HTML:

<div id="blah">Value!!</div>

落镖:

void main(){
    query("#blah").onClick.listen(showValue);
}

void showValue(Event e){
   //Get #blah's innerHtml based on the Event(Something like e.target.innerHtml or e.target.value)
}

任何?我知道如何在JS中做到这一点,但我想知道是否有办法在DART中做到这一点!

修改

感谢大家,我会更加清楚一点。我有一个循环,动态生成9个元素并将它们添加到容器中。

代码:

var j = 0;
  var optionsSquare = query("#optionsPanel");
    while(j < 9){
      DivElement minorSquare = new DivElement();

      var minorSquareHeight = optionsSquare.clientHeight/3;
      var minorSquareWidth = optionsSquare.clientWidth/3;

      minorSquare
       ..attributes = {"class": "miniSugg"}
       ..style.width = (minorSquareWidth.round()-2).toString().concat("px")
       ..style.height = (minorSquareHeight.round()-2).toString().concat("px")
       ..style.float = "left"
       ..style.border = "1px solid"
       ..innerHtml = (j+1).toString();
       ..onClick.listen(showOptionsSquare);

      optionsSquare.children.add(minorSquare);
      j++;
    }

如果我尝试使用@ Pandian的方式,它可以工作,但我只得到循环中最后一个元素的值。我想要的是以某种方式,追踪被点击的元素并获得它的价值!

编辑2

伙计们,刚刚解决了!

如果有人需要这些信息,我会把这里的代码作为回购:

void showOptionsSquare(Event e){
  window.location.hash = "#optionsPanel";
  mainDiv.style.opacity = (0.2).toString();

  DivElement clicked = e.target;
  window.alert(clicked.innerHtml);
}

[]的

2 个答案:

答案 0 :(得分:4)

使用您的示例代码,您只需编写

即可
print(e.target.innerHtml);

showValue函数内部,它会起作用。你有错误吗?如果您担心警告,可以将演员表添加到ElementDivElement

print((e.target as Element).innerHtml);

答案 1 :(得分:1)

尝试如下......它会帮助你......

DivElement div;

void showValue(){
      window.alert(div.innerHTML); 
}

void main() { 
  div = query('#blah');
  div.on.click.add((Event e) => showValue());
}