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

问题描述:

我使用飞镖来开发一个应用程序,我想要得到一个点击元素的值。即:如何使用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的方式,它的工作原理,但我只得到了循环中的最后一个元素的值。我想要的是,以某种方式追踪被点击的元素并获得它的价值!

EDIT 2

家伙,只是解决了这个问题!

我就让这里作为回购的代码,如果有人需要这样的信息:

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

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

的[]

+0

参见:http://*.com/questions/10670173/get-value-of-selected-select-element-in -dart – Wezelkrozum 2013-02-18 18:07:46

+0

虽然不是我想要的东西,但总是有很多关于这类问题的更多知识,谢谢;) – 2013-02-18 18:51:15

尝试像下面......它会帮助你...

DivElement div; 

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

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

非常感谢!因为我在循环中创建的元素中绑定了单击事件,所以它只获得循环值创建的最后一个元素,但是您给了我一个很好的方向,非常感谢! – 2013-02-18 18:49:15

使用您的示例代码,你可以只写

print(e.target.innerHtml); 

里面的你的showValue功能,它会工作。你得到一个错误或什么?如果你所担心的警告,你可以强制转换添加到ElementDivElement

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

没有工作。它引发了我一个“NoSuchMethodException” – 2013-02-18 21:06:33

+0

你的例外说什么?你的另一个例子也适用于我。我正在使用编辑的最新版本,但我认为这没有什么不同。 – 2013-02-18 21:35:34

+0

的堆栈跟踪: **异常:的NoSuchMethodError:方法未找到: '值' 接收机:的 '的DivElement' 参数实例:[] 堆栈跟踪:#0 Object.noSuchMethod(镖:核 - 补丁:1746: 25) #1 showOptionsSquare.showOptionsSquare(http://127.0.0。1:3030/C:/Users/avaz/dart/sudoku_trial/web/out/sudoku_trial.dart:93:25)** – 2013-02-18 21:38:16