0

これで本当に問題があり、私はそれが簡単であることを知っています。何を聞いたらいいのかよくわからないので、Googleはあまり助けてくれません。だからここに取引があります:

アンカーのリストがあり、それぞれから2つの属性を特定の形式の配列に追加する必要があります。各要素の属性を簡単に取得できますが、それらを配列に追加する方法がわかりません。これが私が探しているものです:

目標配列出力

slides = [{
    img: 'img/aaron1.jpg',
    desc: '127'
}

HTML

<section id="photoBin">
    <ul>
        <li><a id="test" href="img/aaron1.jpg" title="Photo #127">127</a></li>
        <li><a href="img/aaron2.jpg" title="Photo #128">128</a></li>
        <li><a href="img/aaron3.jpg" title="Photo #129">129</a></li>
        <li><a href="img/aaron4.jpg" title="Photo #130">130</a></li>
        <li><a href="img/aaron5.jpg" title="Photo #131">131</a></li>
        <li><a href="img/aaron6.jpg" title="Photo #132">132</a></li>
    </ul>
</section>

JavaScript

var slides = [];

$('li a').each(function(){

    var el = $(this)
        img,
        desc;

        img = el.attr('href');
        desc = el.attr('title').split('Photo #');
});

ご協力いただきありがとうございます!簡単な評判までこれをチョークしましょう:)

4

5 に答える 5

3

を介して配列に追加する部分がありませんpush

また、split配列を提供します。分割の2番目の部分(数値)のみを探している場合は、インデックスアクセサーを介してその配列の2番目の要素にアクセスする必要があります[1]

http://jsfiddle.net/H4wWX/1/

var slides = [];

$('li a').each(function(){
    var el = $(this);

    slides.push({
        img: el.attr('href'),
        desc: el.attr('title').split('Photo #')[1]
    });
});

また、これを防弾することを検討することもできます。el.attr('title')が文字列でないか、が含まれていない場合、"Photo #"split/indexアクセサーは例外をスローします。

于 2012-10-17T18:54:03.017 に答える
0
var slides = [];

$('li a').each(function(){

    var el = $(this)
        img,
        desc;

        img = el.attr('href');
        desc = el.attr('title').split('Photo #');
slides.push({
     img: img ,
    desc: desc 
})
});
于 2012-10-17T18:52:40.717 に答える
0

小さな変更で、探しているものが得られるはずです。

var slides = [];

$('li a').each(function(){

    var el = $(this)
        img,
        desc;

    var slide = { img : el.attr('href'),
                  desc: el.attr('title').split('Photo #')[1] };
    slides.push(slide); 
});

これは必ずしも絶対確実ではないことに注意してください。title属性が間違っているか空である場合は、奇妙なjsエラーを楽しみにしてください。スライドをアレイにプッシュする前に、期待どおりの結果が得られていることを確認するために、いくつかのテストを実行することをお勧めします。

于 2012-10-17T18:52:51.893 に答える
0

フィドル: http: //jsfiddle.net/gromer/zqn43/

var slides = [];

$('li a').each(function(){

    var el = $(this);
    var imgHref= el.attr('href');
    var description = el.attr('title').split('Photo #')[1];

    slides.push({
        img: imgHref,
        desc: description
    });
});
于 2012-10-17T18:55:17.077 に答える
0

次の行を追加したいですよね?

slides.push({img: img, desc: desc}) 

質問するには単純すぎるので、何か違うものが必要かもしれませんか?

于 2012-10-17T18:56:49.730 に答える