我可以使用YAHOO.widget.TreeView yui 2.9渲染树。 使用预先制作的
<ul> <li> Products </li> </ul>
我能够获得标签,即使用node.label的产品
YAHOO.util.Event.on('allProductSaveButton','click',function() {
var hiLit = rightProductTree.getNodesByProperty('highlightState',1);
if (YAHOO.lang.isNull(hiLit)) {
YAHOO.log("None selected");
} else {
var labels = [];
for (var i = 0; i < hiLit.length; i++) {
var node = hiLit[i];
if(node.children.length<=0) {
labels.push(hiLit[i].label); }
}
alert("Highlighted nodes:\n" + labels.join("\n"), "info", "example");
}
});
我想在html中插入Products的id并获取label的id。那么我应该在哪里将id属性放在
答案 0 :(得分:0)
我不确定您是否可以在标记上设置自己的id
。 TreeView是YUI 2中最古老的小部件之一,它使用了一个特别有趣的标记,因为那些日子里支持的CSS样式非常可怜,因此,那个有趣的标记的哪一部分你要应用id
?
如果你想要的是给树节点一个标识符,你可以在以后用它来检索它,然后使用custom properties。然后,调用getNodesByProperty将允许您通过该额外属性的值检索节点。
答案 1 :(得分:0)
我有一个解决方案。我将标签元素插入到li元素内的span元素中,即
<ul>
<li> <span> <label id="444" > Product </label> </span>
</li>
</ul>
然后使用YAHOO.util.Dom我遍历并获得label元素的id属性。
YAHOO.util.Event.on('GroupsProductSaveButton', 'click', function() {
var hiLit = rightProductTree2.getNodesByProperty('highlightState', 1);
if (YAHOO.lang.isNull(hiLit)) {
alert("None selected");
} else {
var labels = [];
for (var i = 0; i < hiLit.length; i++) {
var node = hiLit[i];
if(node.children.length<=0) {
labels.push(YAHOO.util.Dom.get(hiLit[i].contentElId).getElementsByTagName('label')[0].getAttribute("value")); }
}
alert("Highlighted nodes:\n" + labels.join("\n"), "info", "example");
ProductGroupDWR.displaySelectedNodes(labels, function(data) {
});
}
});