我必须在单击图像时将一些文本追加到另一个字段。我已将图像显示在“另一个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');
......现在它不起作用,我不知道现在该做什么。我希望有人能在这里帮助我:)
答案 0 :(得分:3)
选择器错误。您必须在父之后选择元素:
var smallImgText = $(this).parent().next('.smallImgDesc');
我还删除了围绕$
的{{1}}包装器,因为将jQuery对象包装在另一个jQuery对象中是绝对没有必要的。为了避免这种混淆,可以使用smallImgText
为所有jQuery对象变量加前缀,这是惯例。
答案 1 :(得分:0)
这段代码似乎是错误的,你要重新包装jquery对象
$('#bigImgText').empty().append(smallImgText.clone());