• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

anzahl der kommentare anzeigen

nepoznat

Neues Mitglied
hi,
ich will mit javascript die div tags einer seite ausgeben, da ich dort ein kommentarsystem erstellt habe und jeder kommentar ist einem neuen div tag.
also wenn jetzt ein kommentar erstellt wird wird ein div tag erzeugt und somit zählt javascript auch ein divtag und gibt die zahl 1 aus ich hab das soweit gelöst

<input type="button" onclick="window.alert ($('div').length);">

allerdings soll die zahl nicht bei klick in einem window fenster erscheinen sondern einfach da stehen im gleichen document.. aber nicht document.write da dass das ganze fenster leert.
 
ja ich benutze jQuery aber ich kenne mich nicht besonderst gut aus darin...
wie meinst du das mit dem append()?
 
mit der Funktion .append() kannst Du etwas ans Ende Deines Dokuments oder wohin auch immer schreiben...

Code:
AnzahlKommentare = $('div').length;
$('content').append('Kommentare: ' + AnzahlKommentare);

ich hoffe das reicht als Gedankenanstoß. Ohne die Seite zu kennen ist es schwierig da näher drauf eingehen zu können...
 
ich versteh dass noch nicht ganz...
hier ist der gesamte quelltext mit einer kommentarfunktion (ohne mysql) und wenn ein kommentar hinzugefügt steht dann dass so im quelltext

<text class="comment">Das ist ein Testkommentar</text>

Hier der quelltext:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="shortcut icon" href="favicon.ico">
</head>
<body>



<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">

AnzahlKommentare = $('text').length;
$('body').append('Kommentare: ' + AnzahlKommentare);

</script>



<!--Fade in-->
<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">
$(document).ready(function(){

$(document).ready(function () {
$('.nav').fadeIn(700);
});

});
</script>

<div class="nav" style="display:none">
<!--Ende -->



<?php
function no_reload()
{
$gleichheit = false;
if (isset($_POST["uw"])) {
$datei = "unique.txt";
$fp = fopen($datei, "r+");
$aw = fgets($fp, 30);
if ($aw == $_POST["uw"]) {
$gleichheit = true;
}
rewind($fp);
fputs($fp, $_POST["uw"]);
fclose($fp);
}
return $gleichheit;
}
$unique = no_reload();
$datei = "comments.txt";
if (!empty($_POST["eintrag"]) && !$unique) {
$comment = $_POST["eintrag"];
$fp = fopen($datei, "r+");
$old = fread($fp,filesize($datei));
$comment = htmlspecialchars($comment);
$comment = stripslashes($comment);
$comment = nl2br($comment);
$meinung="<text class='comment'>$comment</text>";
rewind($fp);
fputs($fp, "$meinung \n $old");
fclose($fp);
}
readfile($datei);
?>






<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">


<textarea name="eintrag" class="eintrag"></textarea>


<input type="hidden" name="uw" value="<?php echo time(); ?>">


<input name="submit" type="submit" value="" class="senden" title="Senden">

</form>

<div id="bottom-space">
</div>

<div id="bottom-space2">
</div>


<div id="profil">
<img src="tape.png" class="tape">
<img src="bilder/profilbild.jpg" class="profilbild">
</div>


</div>



</body>
</html>
 
uiuiui... der Kopfbereich sieht ja mal wüst aus.... :D

erstens solltest Du JS im Kopfbereich einfügen,
zweitens lädtst Du jQuery zweimal ein....

Ändere mal :
HTML:
</head>
  <body>
 
 
 
<script type="text/javascript" src="jquery.js"></script>
 
<script type="text/javascript">
 
AnzahlKommentare = $('text').length;
$('body').append('Kommentare: ' + AnzahlKommentare);
 
</script>
 
 
 
<!--Fade in-->
<script type="text/javascript" src="jquery.js"></script>
 
<script type="text/javascript">
$(document).ready(function(){
 
$(document).ready(function () {
$('.nav').fadeIn(700);
});
 
});
</script>

in:

HTML:
<script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript">

 $(document).ready(function(){
    $(document).ready(function () {
    $('.nav').fadeIn(700);
    AnzahlKommentare = $('text').length;
    $('body').append('Kommentare: ' + AnzahlKommentare);
  });
});
 </script>
</head>
  <body>

wenn das nicht funktioniert, versuche 'body' mit '.nav' zu ersetzen....
 
wenn ich es mit .nav ersetze funktioniert es perfekt.. Danke dafür :D

jetzt noch meine wirklich letzte frage.. kann ich diesen werte den er mir ausgibt also zum beispiel es sind 3 kommentar vorhanden. kann man dass dann irgendwie verlinken damit es auf einer anderen seite angezeigt wird?
 
klar...

ändere:
HTML:
$('body').append('Kommentare: ' + AnzahlKommentare);

in:
HTML:
$('body').append('<a href="link.html">Kommentare: ' + AnzahlKommentare + '</a>');

that's it... :)
 
also ich hab da auf der index.php dann mehrere div tags und jeder von ihnen soll einen eigenen kommentarcounterstand haben

so ungefähr sieht das aus:






<wrapper>


<a href="#">
<div id="bild">
<p class="name">Mustertext</p>
<img src="bild1.png" class="profilbild-small">
</div>
</a>

<a href="#">
<div id="bild">
<p class="name">Mustertext</p>
<img src="Bild2.png" class="profilbild-small">
</div>
</a>


<a href="#">
<div id="bild">
<p class="name">Mustertext>/p>
<img src="Bild3.png" class="profilbild-small">
</div>
</a>


<a href="#">
<div id="bild">
<p class="name">Mustertext</p>
<img src="bild4.png" class="profilbild-small">
</div>
</a>

</wrapper>
 
Dein HTML-Code ist ziemlich fehlerhaft. Innerhalb von Links dürfen keine Blockelemente vorkommen, und <wrapper> gibt es nicht. Könntest Du außerdem bitte Code-Tags verwenden (wie die anderen Poster hier auch), dann kann man deinen Code besser lesen.
 
Zurück
Oben