我正在制作评论系统。我有一个带有一些笑脸图像的div。每次单击图像时,图像文本都将附加到文本区域。但问题是每次我点击一个笑脸图像然后它会将文本附加到页面上的所有textareas,因为所有的teaxtareas都有相同的类。我也尝试给textarea一个id但是它只会将文字附加到第一个teatarea
这是我的HTML代码:
<a href="javascript:void(0)" onclick="appendpostid(' :3 ')">
<img src="emotions/fb/colonthree.gif" class="smiley">
</a>
<textarea class="comment" name="comment" required></textarea>
jQuery脚本:
<script>
function appendpostid( postid ) {
$('.comment').val($('.comment').val() + postid);
}
</script>
答案 0 :(得分:0)
试试这个
<a href="javascript:void(0)" onclick="appendpostid(e, this,' :3 ')">
<img src="emotions/fb/colonthree.gif" class="smiley">
</a>
<textarea class="comment" name="comment" required></textarea>
和jquery
<script>
function appendpostid(e, elem, postid ) {
e.preventDefault();
var textElem = $(elem).next('.comment');
textElem.val(textElem.val() + postid);
}
</script>
答案 1 :(得分:-1)
通过它的声音,你想拥有许多这些按钮和textareas。在这种情况下,一个选项是使用.next()
方法为按钮选择textarea,该方法选择DOM中的下一个元素。您可以使用.comment
类作为选择器来定位它。
在这个例子中,我还略微修改了你的HTML以将帖子ID作为数据属性放入,并应用了一个类,你可以用jQuery来绑定click事件:
<a href="#" data-post-id=" :3 " class="appender">
<img src="emotions/fb/colonthree.gif" class="smiley"/>
</a>
然后你的jQuery:
$('.appender').click(function(e) {
e.preventDefault();
var postId = $(this).data('post-id');
$(this).next('.comment').append(postId);
});
Here's an example包含多套此内容。