問題は、生成されたhtmlがセレクターと一致しないことです。
<div title="parent">
<div title="pen">
<div class="dog">
</div>
</div>
</div>
> *
一致するだけで一致pen
しないから> .dog
です。これらを次のように変更できます。
var parent = document.createElement('div');
var pen = document.createElement('div');
var dog = document.createElement('div');
dog.className = "dog";
pen.appendChild(dog);
parent.appendChild(pen);
dojo.query("> * > *", parent).forEach(function (node) {
if (node.className == "dog") {
alert('bark');
}
});
dojo.query("> * > .dog", parent).forEach(function (node) {
alert('bark');
});
これがフィドルです:http://jsfiddle.net/pTqmL/
編集
または、それが内部にある必要がある場合parent
:
dojo.query("*", parent).forEach(function (node) {
if (node.className == "dog") {
alert('bark');
}
});
dojo.query(".dog", parent).forEach(function (node) {
alert('bark');
});
あなたのコメントに基づいて、あなたが見落としている/気づいていないかもしれない核心的なことは、クエリが親の内部でスコープされているということだと思います。