嘿所有我想从我的一个元素中获取价值。数据元素称为data-lang
,以下是它的示例:
<p class="mainText" data-lang="es">Welcome</p>
这是我目前的Dojo javascript:
dojo.query("[data-lang]").forEach(
function(item){
var theText = dojo.attr(item, "innerHTML");
}
);
这似乎不起作用,因为我没有得到任何东西。我希望从上面得到的是"es"
此外,Dojo如何处理jQuery等同于$(this)
?
答案 0 :(得分:1)
上面的查询应该可以正常工作。你确定你在等待DOM准备好吗?如果您使用的是AMD,则应使用以下内容:
require([ "dojo/query", "dojo/domReady!" ], function(query) {
// Code
});
或非AMD的以下内容:
dojo.addOnLoad(function() {
// Code
});
关于你的第二个问题,别无选择。 dojo/query
不会将当前节点作为回调函数的范围传递,就像您在forEach()
中使用的那样。
但是,您通常可以将当前节点作为参数,因此您可以执行以下操作:
dojo.query("[data-lang]").forEach(function(item) {
query(item).attr("innerHTML");
});
但请记住,如果您使用dojo/query
模块,结果将是一个数组。
以下是一个完整的示例:http://jsfiddle.net/5nguxm8f/