【发布时间】:2016-10-17 10:53:11
【问题描述】:
我的Ajax 请求工作正常并返回所需的数据。但我想将新的class 添加到<li> 元素,这是我从AJAX 请求中获得的。我正在尝试在 Ajax success 下添加新类,即 $elm.addClass("newclass"),但我没有看到这个新类被添加到新的 li 元素中。没有错误。我不确定这有什么问题,因为我也没有收到任何错误。
function loadSuccess(data, status, obj)
{
for (i = 0; i < data.length; i++) {
var nodeid = data[i].attr.id;
if (nodeid=="BALX") {
$("#"+nodeid).addClass("selected");
}
}
};
HTML--来自 Chrome Inspector-->第一次--父节点--
<ul role="tree" style="outline:none">
<li role="treeitem" id="ALLACCOUNTS" <span >ALLACCOUNTS --1</span></a></li>
</ul>
-------------点击父节点“ALLACCOUNTS”后--这是一个Ajax调用-----
<ul role="tree" style="outline:none"><li role="treeitem" id="ALLACCOUNTS" ><a class=""><span class="oj-tree-title">ALLACCOUNTS --1</span></a><ul class="" style="overflow: hidden; display: block;"><li id="BALX" ><a ><span >BALSHEET --2</span></a></li></ul></li></ul>
【问题讨论】:
-
你能创建一个 JSFiddle 吗?如果您在
$("#"+nodeid).addClass("selected");上设置断点,控制台是否会显示 $('#BALX') 的匹配结果? -
@mwilson:- 是的,它进入了 IF 子句,我可以在 DOM 中看到带有 BALX 的 nodeid。就是它没有向这个元素添加新类。我不确定 Ajax Success 是否适合这种操作。
-
你的nodeid是正确的id吗?在浏览器控制台上打印
-
我使用伪造的 jsfiddle ajax 调用在下面发布了一个答案。尝试确保您的匹配正确(网址除外)。但是,我仍然愿意成为您的选择器。向我们展示您的 BALX 元素的 HTML
-
如果您正在从控制台查找添加的类。尝试关闭控制台并再次检查。或者为所选班级添加一些红色边框尝试。 Addclass 必须正常工作,但有时它可能在控制台中不可见。
标签: javascript jquery json ajax oracle-jet