鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ jsTree

jsTree

 $('#jurisdictionBox').on("changed.jstree", function (e, data) {  
       console.log(data.selected);
       console.log(data)
 }); 

data:[
  {
                    "id":"00",
                    "text": "工作臺",
                    "state": {
                        "selected": false
                    },
                },
                {
                    "id":"01",
                    "text":"企業(yè)管理",
                     "children": [{
                         "id":"0101",
                        "text": "企業(yè)信息管理",
                        "state": {
                           "selected": false
                         }
                        }, {
                            "id":"0102",
                            "text": "企業(yè)證照管理",
                            "state": {
                              "selected": false
                             }
                        },
                    ]
                }
]

現(xiàn)在的需求是已經(jīng)知道了被選中的節(jié)點的id了 怎樣遍歷原data 讓選中的節(jié)點的"selected": false的selected屬性為true,這樣保存到后臺,

回答
編輯回答
孤慣
現(xiàn)在的需求是已經(jīng)知道了被選中的節(jié)點的id了 怎樣遍歷原data 讓選中的節(jié)點的"selected": false的selected屬性為true
針對這個不是遞歸就完了嗎。。還要怎么處理梳理
var data = [
  {
    id: '00',
    text: '工作臺',
    state: {
      selected: false,
    },
  },
  {
    id: '01',
    text: '企業(yè)管理',
    children: [
      {
        id: '0101',
        text: '企業(yè)信息管理',
        state: {
          selected: false,
        },
      },
      {
        id: '0102',
        text: '企業(yè)證照管理',
        state: {
          selected: false,
        },
      },
    ],
  },
]

var selected = ['00', '0101']

var iterative = (data, callback) => {
  if (Array.isArray(data)) {
    data.forEach(item => {
      if (item.children && item.children.length) {
        iterative(item.children, callback)
      }
      callback(item)
    })
    return
  }
  callback(data)
}

iterative(data, item => {
  if (selected.includes(item.id)) {
    item.state.selected = !item.state.selected
  }
})
console.log(data)
2018年3月10日 20:48