我在同一页面上有多个内容的评论框,我很难识别它们是否正确对待它们 - 例如,我尝试发表评论的地方并不重要(从中评论框) - 它总是被发布到页面上的第一个评论框,或者我在输出后与输入进行斗争,以便在我发表评论后进行清除,但输入仅在同一个评论框中清除。在这里我有: (AJAX)
$(function() {
$(".comm").click(function() {
var parentDiv = $(this).parent('.post_comment').next().children(":first");
var comment = $(this).parent('.post_comment').find('.comment').val();
var name = document.getElementById("username").value;
var idv = $(this).parent('.post_comment').find("#idv").val();
var posthere = $(this).parent().siblings('.wrap_comment').find('#wrap').attr('class');
alert(idv);
if(comment=='')
{
alert("Enter some text..");
$("#content").focus();
}
else
{
$.ajax({
type: "POST",
url: "river_flow.php",
data:
{ username: $("#username").val(),
idv: $(this).parent('.post_comment').find(".idv").val(),
comment: $(this).parent('.post_comment').find('.comment').val()},
cache: false,
success: function(data){
$('#show').after(data);
$(this).find('.comment').css('background-color','red');
$("#content").focus();
}})
return false;
}})})
(HTML)
<div class='com'><button class='click_and_comment'>Give it a comment</button>
<div class='post_comment'>
<img class='end' src="img/end.png" alt='close'/>
<input type="hidden" id="username" value="<?php echo $_SESSION['username'] ?>" name='username'/>
<input type="hidden"class='idv' id="idv" value="<?php echo $row['idv']; ?>" name='idv'/>
<textarea type='text' class="input_comment comment" placeholder='What do you think?' name='comment' id='comment' ></textarea>
<input type='submit' name='comment_submit' class="comment_submit comm" id='comm'/>
</div>
<div class='wrap_comment' id="<?php echo $row['idv']; ?>" >
<div id="show" align="left" class="<?php echo $row['idv']; ?>" ></div>
<?php
$idvc = $row['idv'];
$query = " SELECT * FROM comments WHERE idvc= '$idvc' ORDER BY datec DESC;";
$result = mysqli_query($conn,$query);
while ($bow = mysqli_fetch_assoc($result)) {
echo "<div class='each_comment' id='<?php echo $bow[idvc];?>' >".$bow['commentc']."</div> ";}
?>
</div>
所以,要在一个问题中形成我的问题:我如何将用户评论分别发布到他们需要的地方&#39;要发布,如何仅清理当前&#39;或者&#39;这个&#39;输入 - 并不总是第一。再一次 - 一切都运作得很完美,问题是总有一个以上的评论框,我需要区分它们并按照它们对待它们。以下是我的猜测不起作用(关于矛盾,我不会在这里),请放心,为什么他们不工作,甚至简单:
$(this).find('#comment').value = '';
不起作用!也许它没有看到&#39;这个属性。但为什么?!所以。这是我的猜测:
$(this).parent('.post_comment').siblings('.wrap_comment').find('#show').after(data);
(这是评论帖,这是我对输入结算的猜测:)
$(this).parent('.post_comment').find('#comment').val('');
我找到了类似的东西:
$(&#39;#评论&#39)。removeAttr(&#39;值&#39);
不起作用 - 我没有谈到当这些东西不起作用时我得到的纯粹的混乱:
$(this).find('.comment').css('background-color','red');
缂。所以,我希望有人可以为我清除这一切。我新手诚实。感谢名单!
答案 0 :(得分:0)
使用以下脚本并使用此代码替换相关脚本。我没有在你的div中找到多个评论框,其中class =&#34; com&#34;所以我认为它只出现在这个div中而不是其他地方:
$(function() {
$(".com").click(function() {
//##############################$(this) here refers to div with class="com" as this is the element on which click event has happened#####################
var myThis = $(this);
//var parentDiv = $(this).parent('.post_comment').next().children(":first");
//since div with class="post_comment" is inside div with class="com" so it is child to that div and not parent
var parentDiv = $(this).find('.post_comment').next().children(":first");
//var comment = $(this).parent('.post_comment').find('.comment').val();
var comment = $(this).find('.post_comment .comment').val();//find element with class="comment" whose parent is div with class="post_comment"
var name = document.getElementById("username").value;
//var idv = $(this).parent('.post_comment').find("#idv").val();
var idv = $(this).find(".post_comment #idv").val();//find element with id="idv" whose parent is div with class="post_comment"
//####Not sure what is the use of below statement
var posthere = $(this).find('.wrap_comment #wrap').prop('class');
alert(idv);
if (comment == '')
{
alert("Enter some text..");
$("#content").focus();
}
else
{
$.ajax({
type: "POST",
url: "river_flow.php",
data: {username: $("#username").val(),
idv: idv,
comment: comment
},
cache: false,
success: function (data) {
$('#show').after(data);
//### $(this) here will not point to your div with class="com" as it is in different context inside your ajax success function
//##$(this).find('.comment').css('background-color', 'red');
myThis.find('.comment').css('background-color', 'red');
$("#content").focus();
}
});
return false;
}
});
});