我有一个像这样的字符串:
<a href="http://www.google.de/imgres" ><img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhUUEhQUFRQVFRQVFRQVFBQVFxQUFRUXFhQUFBUYHCggGBolHBQUITEhJSkrLi4uFx8zODMsNygtLisBCgoKDg0OFBAQGiwkHyQsLCwsLCwtLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLP" /></a>
现在我想在引号之间提取src内容。我怎么能这样做
答案 0 :(得分: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');
另外,我建议您检查DOM规范中的getElementById
。
如果你不能像你说的那样设置id
,那么你可能会从网页中获取所有链接并进行某种选择(例如,使用JQuery按类选择),所以解决方案可能是这样的:
$('a').each(function() {
var src = $(this).children('img').src; // here is your string
});
答案 1 :(得分: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中以确保始终存在根节点。 Fiddle demo
如果你想提取所有“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;
}
答案 2 :(得分:1)
我建议不使用正则表达式,只使用DOM方法:
function retrieveProp(htmlString, from, prop) {
var tmp = document.createElement('div');
tmp.innerHTML = htmlString;
var elem = tmp.getElementsByTagName(from)[0];
return elem[prop];
}
答案 3 :(得分: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');
});