2017-07-07 47 views
3

是否有可能在jQuery的$.each方法中使用ES6模板文字?

試圖做這樣的,沒有成功:

let arr = this.arr; 

    $.each($("g#texts").children(), function (i, contents) { 
    $("#`${contents.id}` tspan") 
     .text(arr.find(a => a.name == "`${contents.id}`") 
     .displayedName); 
    }) 

這裏應該修正?

+0

這些不是ES6模板文字。這是字符串文字中的模板語法。 – Bergi

回答

5

這當然有可能。你擁有的問題是因爲你已經將模板文字放在字符串文字中。第二個模板文字也是多餘的。如果修復了語法,則您編寫的代碼將工作正常:

$("g#texts").children().each(function (i, contents) { 
    $(`#${contents.id} tspan`).text(arr.find(a => a.name == contents.id).displayedName); 
}); 
+0

jQuery給了我一個錯誤:「未捕獲的錯誤:語法錯誤,無法識別的表達式:#tspan ...」。 「tspan」嵌套在「text」元素(SVG)中。硬編碼時設置新的文本值工作正常;不過$ {}文字不會合作。 – AbreQueVoy

+2

錯誤意味着'contents'指向的元素沒有'id'屬性,因此使用了無效的選擇符'#tspan' –

+0

這就是關鍵:我沒有設置所有孩子的ID,並且方法去了在空值上。現在我得到了糾正,一切正常,謝謝你的幫助! – AbreQueVoy