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

#id の代わりに .class を使用してみてください。console.log( $("#"+nodeid) );そして、これが本当に存在するかどうかを確認するために、この要素を探します。複数の #id 要素があり、エラーが発生する場合があります。

$("#nodeid_name").addClass('selected');これをブラウザコンソールに強制的に入力して、$("#BALX").addClass('selected');何が起こるか見てみましょう。

于 2016-06-16T05:24:24.440 に答える