2

次のような画像があります。

<img src="http://127.0.0.1/test/images/cat01.png" alt="00" class="cat_img">
<img src="http://127.0.0.1/test/images/cat02.png" alt="00" class="cat_img">
<img src="http://127.0.0.1/test/images/cat03.png" alt="00" class="cat_img">

画像名(cat01.png、cat03.png、cat03.png)をjavascript(jQueryなし)で選択したい。

どうやってやるの ?

私が試してみました :

var images = Array.prototype.slice.call(document.getElementsByClassName('cat_img'));
console.log('Images '+images);

手伝ってくれてありがとう。

4

3 に答える 3

4

または、このように (Array.prototype.slice を使用する必要はありません)

var images = Array.prototype.map.call(
  document.querySelectorAll(".cat_img"),
  function(img) {
    var src = img.src, 
        lastIndex = src.lastIndexOf('/');
    return src.slice(lastIndex + 1);
  });
于 2013-07-19T14:36:57.497 に答える
1

mapimagesを使用して配列をループし、必要な属性の一部 (最後の の後のすべて)を返すことができます。src/

var images = Array.prototype.slice.call(document.getElementsByClassName('cat_img'));
var imageNames = images.map(function( image ) {
    return image.src.substring( image.src.lastIndexOf("/") + 1 );
} );

console.log(imageNames);

jsfiddle

于 2013-07-19T14:35:44.507 に答える
0

これは、ループで正規表現を使用した簡単な例です。

var images = Array.prototype.slice.call(document.getElementsByClassName('cat_img'));
for(i = 0; i < images.length; i++) {
    console.log(images[i].src.replace(/.+\//, ''));
}

jsfiddle

したがって、名前の配列を作成するには、console.log(...)行を次のように置き換えますimages[i] = images[i].src.replace(/.+\//, '')

于 2013-07-19T14:41:32.770 に答える