如何使用Javascript在getElementByID之后引用img src =“”标签中的数据?

时间:2013-05-15 18:36:38

标签: javascript html dom

我正在尝试getElementById(“game_image”)并且TagName是'img'我希望'src'标记内的数据,特别是'key = f430a2c1'标记。:

<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);

6 个答案:

答案 0 :(得分:3)

wanted = data.src;

getElementById返回单个元素,而不是NodeList,因此您不需要使用数组语法。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

考虑到src网址可​​能包含更多以'&amp;'分隔的参数,您可以像这样提取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=...)。

答案 3 :(得分: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>部分正确匹配,即使'key'不是查询字符串中的第一个参数。

答案 4 :(得分:-1)

Jquery的? 工作小提琴 - &gt; http://jsfiddle.net/mpyfQ/8/

    var data = $("#game_image").attr("src");
    data = data.substring(data.indexOf('?') + 1);

答案 5 :(得分:-2)

答案应该是InnerHTML。