我正在使用树,树的结构如附图所示。
我正在尝试做的就是拖拉子画面中的子元素。 我想得到父李的文字,如图所示,但我没有得到它。
现在我正在尝试这种方式,下面是我的代码:
libName=$(ui.draggable).prevAll("li.lib:first").text();
其中lib是父li的类名,但我没有得到任何文本。所以如何得到它。
答案 0 :(得分:2)
libName=$(ui.draggable).parents("li").first().text();
或者,closest
可能会更有效率(因为它不必访问所有祖先;不是它可能很重要),但你必须首先使用parent
因为被拖动的项目否则将匹配:
libName=$(ui.draggable).parent().closest("li").text();
请注意,我们可以对first
的结果使用parents
,因为该集合是根据最靠近元素的父级(然后是下一个祖先等)排序的。
您在下面发表了评论:
但它也列出了我的父母和兄弟李......但我只需要父母李
如果您的意思是希望父项没有的文本包含它所包含的列表的文本(即只有直接包含的文本),您可以使用contents
代替text
(也可能使用$.trim
,删除前导和尾随空格):
libName=$.trim($(ui.draggable).parent().closest("li").contents().map(function() {
return this.nodeType === 3 ? this.nodeValue : ""; // 3 == text node
}).get().join(""));