2017-03-09 69 views
-3

我有一個問題想問你特殊的結構,我找了jQuery庫,使結構的正確操作選擇它看起來是這樣的:jQuery庫爲選擇

<select name="name['index']['index']"> 
    ... 
</select> 

<select name="name['index'][]['index']"> 
    ... 
</select> 

通常使用的庫選擇2,但是當我要展開的列表,在目前返回我一個錯誤:

Uncaught Error: Syntax error, unrecognized expression: label [for = name [ 'index'] [ 'index']]

所以我的問題是,你們有沒有人知道一個圖書館可以應付這樣的結構?

或者像那個select2允許的東西,我不知道,你們其中一個知道如何做到這一點?

+1

什麼意思'name ['index'] [] ['index']'?這個元素的所有孩子? –

+0

有沒有必要引用'索引' – Barmar

+0

@MaciejKozieja 我想轉換這個結構到一個很好看的選擇使用庫它不重要它是什麼意思它只是一個html結構 – rad11

回答

0

我想這是你想要什麼:

const select = (filter, node = document.body) => { 
    if (typeof filter == "string") { 
     return select(x => x.getAttribute('name') == filter, node) 
    } else if (typeof filter == "function") { 
     const nodeIterator = document.createNodeIterator(node, NodeFilter["SHOW_ELEMENT"], { 
      acceptNode: node => filter(node) == true ? NodeFilter.FILTER_ACCEPT : null 
     }), list = [] 
     let temp 
     while (temp = nodeIterator.nextNode()) { 
      list.push(temp) 
     } 
     return list 
    } 
} 

你會使用這樣的:

select('name['index'][]['index']') 

這將檢查name屬性是你指定的字符串。
您還可以添加第二個參數,以將選擇減少爲僅特定元素的子項。

你也可以編寫函數來檢查你是否想要,試試你的自我:D希望它適合你。