2

我的Ajax请求工作正常并返回所需的数据。但我想向我从请求中获得class的元素添加新元素。我正在尝试添加新类,即在 Ajax 下,但我没有看到这个新类被添加到新元素中。没有错误。我不确定这有什么问题,因为我也没有收到任何错误。 <li>AJAX$elm.addClass("newclass")successli

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>
4

2 回答 2

1

这是您要完成的工作的示例。我想你可能会选择你的选择。尝试使用开发人员工具确保 jquery 确实在查找元素:

https://jsfiddle.net/9j429sw4/

HTML

<div id="test1">Test 1</div>
<div id="test2">Test 2</div>
<div id="test3">Test 3</div>
<div id="test4">Test 4</div>

CSS

.selected {
  background-color: green;
  color: red;
}

JavaScript

var ids = ["test1", "test2", "test3", "test4"];
$.ajax({
    type: 'GET',
    url: '/echo/json',
    success: function (response) {
      for (var i = 0; i < ids.length; i++) {
          if (ids[i] == "test2") $("#"+ids[i]).addClass('selected');
      }
    },
    error: function (err) {
      alert('error');
    }
});
于 2016-06-16T05:29:31.047 回答
0

尝试使用 .class 而不是 #id。并与你一起寻找这个元素,console.log( $("#"+nodeid) );以验证它是否真的存在。也许你有多个 onde #id 元素并得到一些错误。

将其强制$("#nodeid_name").addClass('selected');进入您的浏览器控制台,$("#BALX").addClass('selected');看看会发生什么。

于 2016-06-16T05:24:24.440 回答