2011-11-22 31 views
0

我有以下元素:我如何在jQuery中替換它?

<span data-valmsg-for="Company.People[0].Name" /> 

我想什麼做的,是採取「數據valmsg換」屬性和格式化它看起來像這樣:

var idToLocate = "Company.People_0__Name"; 

哪有我用jQuery完成了這個?

回答

1

將屬性值轉換爲javascript變量後,不需要jQuery。你可以簡單地做就可以替換操作將其轉換到你想要的形式:

var str = "Company.People[0].Name"; 
var idToLocate = str.replace(/\[(\d+)\]\./,"_$1__"); 
// idToLocate will now be "Company.People_0__Name" 

你可以看到它在這裏工作:http://jsfiddle.net/jfriend00/XYwbL/

+0

如何將佔到所有數值? 0只是我的例子,但我可能有0多個。可能實際上低於1000的任何東西。 – Mike

+0

@Beavis - 我修改了我的答案,爲括號中的任何數字值工作。 – jfriend00

+0

太棒了,謝謝! – Mike

1

獲取$('span').attr('data-valmsg-for')的屬性並將其設置爲$('span').attr('data-valmsg-for', value)

2

試試這個

var idToLocate = $('span').attr('data-valmsg-for').replace('[', '_').replace('].', '__'); 
+0

http://jsfiddle.net/UbcPH/只有改進將是一個更獨特的選擇器,以確保它在示例外工作。 http://jsfiddle.net/UbcPH/1/'$('span [data-valmsg-for^=''Company.People''')。attr('data-valmsg-for')。replace(' [','_')。replace(']。','__');' –

+0

解決方案的問題在於它不會提取可以爲0+的數值。我會怎麼做? – Mike

+0

@Beavis - 您不必擔心這個問題,它會在修改過的字符串中保留該數字。 – ShankarSangoli

相關問題