如果你想使用普通的JavaScript,而不是jQuery的,你可以使用:
Object.prototype.mapAttribute = function (attr) {
if (!attr) {
return false;
}
else {
var test = this.length,
that = test ? [] : [this],
arr = [];
if (test) {
for (var i = 0, len = this.length; i < len; i++){
that[i] = this[i];
}
}
for (var i = 0, len = that.length; i < len; i++){
arr[i] = that[i].getAttribute(attr);
}
return arr;
}
};
電話如下:
var sources = document.getElementsByTagName('img').mapAttribute('src');
console.log(sources);
JS Fiddle demo。
或(例如):
var sources = document.getElementById('test').mapAttribute('src');
console.log(sources);
JS Fiddle demo。
以上將讓你從屬性的值,因此,例如在下面的HTML:
<img src="images/testRelativePath.png" />
值在數組中返回的將是:
['images/testRelativePath.png']
如果你想,而是可以使用的絕對路徑:
Object.prototype.mapAttribute = function (attr) {
if (!attr) {
return false;
}
else {
var test = this.length,
that = test ? [] : [this],
arr = [];
if (test) {
for (var i = 0, len = this.length; i < len; i++){
that[i] = this[i];
}
}
for (var i = 0, len = that.length; i < len; i++){
arr[i] = that[i][attr];
}
return arr;
}
};
JS Fiddle demo。
將返回(在鏈接的演示,看看在控制檯的最後一個值):
"http://fiddle.jshell.net/_display/images/testRelativePath.png"
而且,雖然你現在已經接受了答案,這裏是如何使用普通的JavaScript做同樣的:
Object.prototype.mapAttributeFromString = function (elem, attr) {
if (!elem || !attr) {
return false;
}
else {
var div = document.createElement('div'),
arr = [];
div.innerHTML = this;
var elems = div.getElementsByTagName(elem);
for (var i = 0, len = elems.length; i < len; i++){
arr[i] = elems[i].getAttribute(attr);
}
return arr;
}
};
var HTML = '<p>Lorem ipsum dolor sit amet, consetetur</p><p>Lorem ipsum dolor sit amet:</p><p><a href="http://upload.wikimedia.org/wikipedia/de/b/bc/Wiki.png"><img alt="Wiki" src="http://upload.wikimedia.org/wikipedia/de/b/bc/Wiki.png" width="600" height="534"></a></p><p><a href="http://upload.wikimedia.org/wikipedia/de/b/bc/Wiki.png"><img alt="Wiki" src="http://upload.wikimedia.org/wikipedia/de/b/bc/Wiki.png" width="600" height="534"></a></p><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam/p><p><a href="http://upload.wikimedia.org/wikipedia/de/b/bc/Wiki.png"><img alt="Wiki" src="http://upload.wikimedia.org/wikipedia/de/b/bc/Wiki.png" width="600" height="534"></a></p>',
sources = HTML.mapAttributeFromString('img','src');
console.log(sources);
JS Fiddle demo。
這是快:d真棒非常感謝你! :) – Florian 2013-04-21 14:23:14
這需要HTML文件的所有img源文件。有沒有辦法將它縮減爲一個字符串? 問題是,我把HTML看作一個字符串,我想過濾字符串,而不是整個頁面。 – Florian 2013-04-21 14:24:56
@Florian是的,你可以做一些像$(string).find('img')。map(...)' – 2013-04-21 14:26:10