2013-05-15 39 views
-1

我想的getElementById( 「game_image」)和標記名是 'IMG' 我想 'SRC' 標籤內的數據,特別是 '鍵= f430a2c1' 令牌:如何使用Javascript在getElementByID之後引用img src =「」標記中的數據?

<img id="game_image" src="img/index.php?key=f430a2c1&rand=956875" alt="game image." style="padding-right:150px;" /> 

*

$("#b_hint").click(function(){ 
//  var images = document.getElementsByTagName("img"), 
//   wanted; 
var data = document.getElementById("game_image"), wanted; 
wanted = data[1].src; 
// if (images.length) { 
//  wanted = images[1].src; 
// if (wanted) { 
//  wanted = wanted.split("?"); 
//  if (wanted.length >= 2 && wanted[1].indexOf("&") !== -1) { 
//   wanted = wanted[1].split("&")[0]; 
//  } 
// } 
//} 

//if (typeof wanted !== "string") { 
// wanted = ""; 
// } 

alert(wanted); 
+0

因此'數據=想要'... – elclanrs

+0

[使用JavaScript令牌從HTML標記中提取URL參數?](http://stackoverflow.com/questions/16556966/extracting-a-url-參數-html-tag-by-use-javascript-tokens) – Ian

+2

可能的重複?如何確定克隆? (同樣的問題,同樣的用戶... [失敗] ...) – gkalpak

回答

3
wanted = data.src; 

getElementById返回單個元素,而不是一個節點列表,這樣你就不需要使用數組語法。

0
wanted = data.src; 
wanted = wanted.substring(wanted.indexOf('?') + 1) 
-2

答案應該是InnerHTML。

+0

圖標記不能有子節點,所以他們永遠不會有innerHTML。 – JJJ

+2

答案不應該是InnerHTML。 – Stephen

+0

答案不會是innerHTML – Jashwant

0

考慮到了src網址可能包含由 '&' 分隔多個參數,你可以提取key=...這樣的:

function getKey(url) { 
    var idx1 = url.indexOf("?") + 1; 
    if (idx1 == -1) { return ""; } 

    var idx2 = url.indexOf("&"); 
    if (idx2 == -1) { idx2 = url.length; } 

    return url.substring(idx1, idx2); 
} 

$("#b_hint").click(function() { 
    var img = document.getElementById("game_image"); 
    var wanted = getKey(img.src); 
    ... 

注意
要使getKey()函數正常工作,'key'參數必須直接顯示'?' (例如...?key=...,但是不是...?some=other&key=...)。

0

另見本正則表達式的供電解決方案:

var regex = new RegExp(".*?\\?.*?\\b(key=[^&]+)"); 
$("#b_hint").click(function() { 
    var src = document.getElementById("game_image").src; 
    var wanted = regex.test(src) ? src.match(regex)[1] : ""; 
    ... 

這將key=<value>部分搭配得當,即使「鑰匙」是不是在查詢字符串的第一個參數。