jQuery - 附加一些文本问题

时间:2012-02-18 10:45:15

标签: jquery

我必须在单击图像时将一些文本追加到另一个字段。我已将图像显示在“另一个div”中,但文本不会跟随。

我的HTML是这样的:

<div class='smallImg'><img alt='En beskrivelse' class='smallImgImg' src='flot.jpg'></div>

<div class='smallImgDesc'>        
    <span style='font-size:10px;'>
        Here should the description be..
    </span>
</div>


<div id='bigImg'>Image appears here</div>
<div id='bigImgText'>her skal beskrivelsen komme</div>

和JS:

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

    var smallImgText = $(this).next('.smallImgDesc');

    $('#bigImg').empty().append($(this).clone());
    $('#bigImgText').empty().append($(smallImgText).clone());

});

所以,当我点击图像(.smallImgImg)时,它会在#bigImg div中显示它,它可以正常工作。然后我想在#bigImg下面添加说明。但似乎我无法捕获.smallImgDesc,因为#bigImgText只是变空。

我也试过这样做:

var smallImgText = $(this).find('.smallImgDesc');

......现在它不起作用,我不知道现在该做什么。我希望有人能在这里帮助我:)

2 个答案:

答案 0 :(得分:3)

选择器错误。您必须在之后选择元素:

var smallImgText = $(this).parent().next('.smallImgDesc');

我还删除了围绕$的{​​{1}}包装器,因为将jQuery对象包装在另一个jQuery对象中是绝对没有必要的。为了避免这种混淆,可以使用smallImgText为所有jQuery对象变量加前缀,这是惯例。

演示:http://jsfiddle.net/kgH3K/

答案 1 :(得分:0)

这段代码似乎是错误的,你要重新包装jquery对象

$('#bigImgText').empty().append(smallImgText.clone());