0

私はこれを持っています:

$('li').click(function() { 
    var currentSrc = $('img', this).attr('src').toString();
    var grabAlt = $('img', this).attr('alt').split('|');
    //alert(grabAlt[0]);
    $('.imgSample img').attr('src', currentSrc);
    $('.projectDescription').html('<p class="projectDescription">' + grabAlt[0].join('</p>')); 
    $('.projectTitle').html(grabAlt[1]); 
});

[0]と[1]を削除すると、どちらかを警告でき、最初の値[0]がプロジェクトの説明に置き換わりますが、それぞれをそれぞれの場所に配置しようとしてもまったく機能しません。 。

関連するHTMLのスニペット:

<section class="workArea">
    <div class="imgSample"><img src="images/samples/testImage2.png" alt="This first part will be a short description. | this second part will be the title."></div>
    <p class="projectDescription">This is to be replaced when an image is clicked on.</p>
    <h3 class="projectTitle">To be replaced</h3>
</section>
</div>

<nav>
    <ul class="print">
        <li class="liRounded"><img width="50" height="50" src="images/samples/image1.png" alt="Should replace the content in the paragraph. | Replace title copy."></li>

        <li class="liRounded"><img width="50" height="50" src="images/samples/image2.png" alt="Second. | Replace title 2."></li>

        <li class="liRounded"><img width="50" height="50" src="images/samples/image3.png" alt="third. | Replace title 3."></li>
    </ul>
</nav>

ここで間違っているのは私の構文または使用法ですか?

4

1 に答える 1

0

あなたはほとんどそこにいましたが、完全ではありません:

$('li').click(function() { 

    var img = $('img', this).get(0);
    var src = img.src;  // no need for .attr
    var alt = img.alt;  //     ditto

    var grabAlt = alt.split('|');

    $('.imgSample img').attr('src', currentSrc);
    $('.projectDescription').text(grabAlt[0]);
    $('.projectTitle').text(grabAlt[1]); 
});

<p>ほとんどの場合、要素内に新しいものを入れる必要はなく.projectDescription、テキストの内容を変更するだけで済みます。

@gdoronがほのめかしているように、.join()あなたが思っているようには機能しません。文字列の配列を受け取り、指定された区切り文字でそれらを結合します。と連結しませんgrabAlt[0]</p>

于 2012-06-10T22:06:56.533 に答える