我在ajax成功動態生成表並給每個表一個id。此ID等於產品型號的編號。jquery中包含空間的ID問題?
但在許多情況下,產品型號包含空格,因爲它不生成的ID正確一樣,如果模型是「MU-1 SLD G」然後動態表看起來像這樣 <table id="MU-1" g="" sld="">
那麼如何處理這種情況?
我在ajax成功動態生成表並給每個表一個id。此ID等於產品型號的編號。jquery中包含空間的ID問題?
但在許多情況下,產品型號包含空格,因爲它不生成的ID正確一樣,如果模型是「MU-1 SLD G」然後動態表看起來像這樣 <table id="MU-1" g="" sld="">
那麼如何處理這種情況?
ID中不能有空格。
生成表格內容時,請使用替換功能,將空格更改爲「 - 」。從服務器接收的數據中引用表格行時,請使用相同的功能生成要查找的有效標識號。
執行此功能的一個簡單的例子:
function replaceAllSpacesWithLines(string) {
return string.replace(/ /g, '-');
}
所以基本上產生所述內容時,遍歷所有數據從所述AJAX請求到來 - 假定這是用某種陣列的JSON響應元素 - 並通過使用此函數爲ID創建表格行。爲了便於參考,還可以爲行選擇一個數據屬性,以便保留原始ID的值以防萬一需要。
對於關鍵「有些KEY 1」,你可以結了一個錶行:
<tr data-id='SOME KEY 1' id='SOME-KEY-1'> ... data ... </tr>
這樣,在元素上點擊時,您可以檢查數據-ID的真實身份,並且從邏輯數據中選擇行時,可以重新生成id,或者簡單地查詢具有特定data-id的行的dom。
我希望這有助於:)
如果您無法爲某些元素編寫CSS選擇器,則可以通過替代方法獲取它們,並直接將元素傳遞給jQuery。例如,對於包含空格的ID,用getElementById
方法:
<div id="foo bar">Hello</div>
而且在JS:
var element = document.getElementById("foo bar");
jQuery(element).css({ color: "red" });
然而,因爲在標識空間是not valid HTML5,你應該避免在ID中使用空格。更好的解決方案是將空格字符更改爲非空格字符,如下劃線_
,或者使用camelCase標識符代替。
而產生動態ID可以用_ – gulshanm01
沒有足夠的上下文信息代替空間......但最好的解決辦法是隻需更換與選擇的符號的空間。 – Christoph
代碼在哪裏?添加代碼,因爲它似乎對我而言是偏離的。投票結束。 – Jai