-3

私はこのような文字列を持っています:

<a href="http://www.google.de/imgres" ><img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhUUEhQUFRQVFRQVFRQVFBQVFxQUFRUXFhQUFBUYHCggGBolHBQUITEhJSkrLi4uFx8zODMsNygtLisBCgoKDg0OFBAQGiwkHyQsLCwsLCwtLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLP" /></a>

ここで、引用符の間の src コンテンツを抽出したいと思います。どうすればそれができますか

4

4 に答える 4

2

正規表現を使用せず、単に DOM アプローチを使用することをお勧めします。

function retrieveProp(htmlString, from, prop) {
    var tmp = document.createElement('div');
    tmp.innerHTML = htmlString;
    var elem = tmp.getElementsByTagName(from)[0];
    return elem[prop];
}

JS フィドルのデモ

于 2013-05-26T14:05:27.217 に答える
2

まず、次のように設定idしますimg

<a href="http://www.google.de/imgres" ><img id="your_image_id" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhUUEhQUFRQVFRQVFRQVFBQVFxQUFRUXFhQUFBUYHCggGBolHBQUITEhJSkrLi4uFx8zODMsNygtLisBCgoKDg0OFBAQGiwkHyQsLCwsLCwtLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLP" /></a>

次に、以下を使用します。

var src = document.getElementById("your_image_id").attr('src');

getElementByIdまた、DOM 仕様を確認することをお勧めします。

あなたが言うように設定できない場合id- おそらく、何らかの選択 (JQuery を使用してクラスごとに選択するなど) を使用して Web ページからすべてのリンクを取得している可能性があるため、解決策は次のようになります。

$('a').each(function() {
    var src = $(this).children('img').src; // here is your string
});
于 2013-05-26T14:06:43.883 に答える
1

jqueryを使えばこんな感じにできます。

function extract(data,tag,attribute){
    var html = $("<div>" + data + "</div>");
    return html.find(tag).attr(attribute);
}

あなたの場合のタグは「img」、属性は「src」です。

var html = $("<div>" + data + "</div>");

文字列を div 内にラップして、常にルート ノードが存在するようにします。フィドルのデモ

すべての「src」を抽出して配列を返したい場合は、これを試してください

  function extract(data,tag,attribute){
        var html = $("<div>" + data + "</div>");
        var returnedData = [];
        html.find(tag).each(function(){
             returnedData.push($(this).attr(attribute));
        });
        return returnedData;
    }
于 2013-05-26T14:04:39.797 に答える
1

それはあなたがこれをしたい方法に依存します。

文字列の場合は、正規表現を使用できます。

/.*src=\"(.*?)\".*/.exec('<a href="http://www.google.de/imgres" ><img id="image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhUUEhQUFRQVFRQVFRQVFBQVFxQUFRUXFhQUFBUYHCggGBolHBQUITEhJSkrLi4uFx8zODMsNygtLisBCgoKDg0OFBAQGiwkHyQsLCwsLCwtLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLP" /></a>')

ただし、最善の方法は DOM を使用することです。ID を指定して、「src」属性を取得します。

<img src=".." id="img" />

Javascript:

document.getElementById('img').src

編集 IDを設定できないことがわかりました。他の人が述べたように、すべてのimgタグをループできます。

ネイティブ:

var imgs = document.getElementsByTagName('img');
for (var i = 0; i < imgs.length; i++)
{
     var src = imgs[i].src
}

jQuery:

$('img').each(function ()
{
     var src = $(this).attr('src');
});
于 2013-05-26T14:07:25.950 に答える