再次聲明,我問評論形式的問題,我在做一個形象的網站,每幅圖像都有自己的評論表單,所以當我提交表單我這樣做:關於產品選擇的形式孩子的jQuery
$('#comment_form').live('submit', function() {
...
因此爲了僅選擇我試圖用這種這種形式textearea的價值,但我在這裏得到了一個未定義的錯誤是我嘗試:
$('#comment_form').live('submit', function() {
image_comment_text=$(this).closest("#comment_text").val(); //textarea id is comment_text
我試圖使用find()方法,它的工作,但是當我提出意見的我得到的評論是我應該評論的2或3倍的圖片,因爲find會發現所有出現的textarea與c omment_text id ..我該如何做到這一點?
@molf,這裏產生由JavaScript的HTML:
var xHTML = "<div class=\"addComment\">";
xHTML += "<form action=\"<?=base_url()?>images/post_comment/" + post + "\" method=\"post\" class=\"comment_form\" name=\"comment_form\">";
xHTML += "<input type=\"hidden\" class=\"comment_post_id\" name=\"comment_post_id\" value=\"" +post + "\"/>";
xHTML += "<textarea class=\"comment\" name=\"comment_text\" rows=\"8\" cols=\"40\"></textarea>";
xHTML += "<input type=\"submit\" name=\"submit\" class=\"post_image_comment\" value=\"Comment\"><span> Don't make it too big!</span>";
xHTML += "</form></div>";
編輯
當我打印到控制檯日誌textarea的價值我得到的結果只有一個,我應該,現在當我嘗試添加了UL意見,我得到了相同的值的2 ..這怎麼回事..
<ul class="comments"></ul>
下面
是註釋形式,這是不是在T他記錄的一切,當某些錨被點擊的形式彈出下面.comments
,當表單提交我想追加評論添加新評論列出現有的無序列表意見的項目,這裏是整個代碼:
$('form[name^="comment_form"]').live('submit', function(event) {
r= $(this).find('> .comment').val();
$('<div class="overlay"></div>')
.appendTo('.addComment')
.fadeIn(200, function() {
$('.comments')
.append('<li id="new_append">' + r + '</li>')
.children(':last')
.height($('.comments li:last').height())
.hide()
.slideDown(800, function() {
var bodyHeight = $('html').height();
$('.addComment').fadeOut(500, function() {
$('html').height(bodyHeight);
$('h2#leaveAComment').fadeOut(200, function(){$(this).text('Thank you for your comment!').fadeIn(200)});
});
});
$('html, body').scrollTo($('#new_append'), 800);
});
event.preventDefault();
});
編輯II @patrick
它加載評論表單是上述的JavaScript ..這裏是HTML:
-------------開始爲EACH-- ------------
<div id="image-12" class="image_content">
<img src="..." />
<ul class="comments hidden"> //This is where the comments are appended to <li></li>
</ul>
<div style="float: left; display: block; width: 100%;">
<a id="image_comment-12" class="image_comment" onclick="showComments('12');" href="javascript:;">Add Comment</a>
</div>
<div id="addComment-12">//this is where the comment form loads
</div>
</div>
---------- END --- FOR EACH ---------圖像...
'closest'找到最接近的*父元素的*。即它從表單向後搜索到'html'元素,而不是在你的表單中。 – vava 2010-02-20 14:15:41
@vava我如何搜索範圍內,但只適用於某個類 – ant 2010-02-20 14:17:25
@ c0mrade,molf給了你正確的答案,在你的查詢中使用':first'(或':last')修飾符。 – vava 2010-02-20 14:22:59