2012-09-30 174 views
2
<div id="main"> 
<div class="navigate"> 
    <ul> 
     <li> 
      <a href="http://localhost/xm/index.php"><span>xm</span></a> &#187; 
     </li> 
     <li> 
      <a href="http://localhost/xm/index.php?action=admin"><span>Admin</span></a> &#187; 
     </li> 
     <li> 
      <a href="http://localhost/xm/index.php?action=admin;change=name;random02342=randomvaluetoo320230"><span>change</span></a> 
      ....... 

從這個網站碼我得在變,這是隨機生成的兩個random0234和隨機值也隨機生成的數據「random02342 = randomvaluetoo320230」。我如何通過Javascript實現這一點(jQuery或不)?DOM操作需要幫助

編輯:random02342和randomvaluetoo320230是隨機生成服務器端..所以它像像1stHash4324kjkjdas324324 = And2ndAnotherHash324324asd23432

+0

這些值是否有模式,例如如果它始終以「隨機」開頭?或者它總是有三個查詢參數?你知道查詢字符串中的所有其他參數嗎? – Felix

+0

所有其他我知道和第三隻是隨機生成像?action = admin; change = name; 1stHASH = 2ndHASH並且總是有'='之間。 –

回答

0

根據您的評論:

var value = $('selector').attr('href').split(';')[2].split('='); 

這會給你的價值[0] - 名稱和值[1] - 價值 然而這僅僅是如果有3個查詢參數和隨機一個是第三

而且這可能是有用的Parse query string in JavaScript

+0

作品!非常感謝你! –

+0

不客氣,真的不是很好的解決方案...想想重構這個會很好 – Felix

2

每一次新的哈希這將得到它,但它可能不會贏得任何獎項的優雅:

var m = document.getElementById('main').innerHTML.match(/random(\d+)=randomvaluetoo(\d+)/); 
// m[1] and m[2] are the two random values. 
+0

你有沒有試過你的例子?這將適合,如果你有生成值的模式 – Felix

+0

不,但我不明白爲什麼它不起作用。 –

+0

在我看來,你要麼刪除'/'要麼分裂查詢字符串第一 – Felix

0
var first, second; 

var q = $('.navigate ul li a[href*="change=name"]').attr('href').split(';').filter(
    function() { 
     return this.contains('random'); 
    } 
).join().replace(/[a-zA-z]/g, '').split('='); 

first = q[0]; 
second = q[1];