JavaScript / jQuery - Warum funktioniert das nicht?
Hallo,
ich möchte hier Absatz 2-5 eine Klasse ('abschnitt') geben und deren Text ändern zu 'neuer jQuery Text'.
Wieso funktioniert das hier nicht?
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
'use strict';
document.onload = function() {
for (var i = 1; i < document.querySelectorAll('p').length; i++) {
document.querySelectorAll('p')[i].classList.add('abschnitt');
$('.abschnitt').text('neuer jQuerytext');
}
}
</script>
<script></script>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<br>
<h1> Überschrift </h1>
<h2 id="ü2"> Überschrift h2 </h2>
<p id="p1"> Absatz 1 </p>
<p id="p2"> Absatz 2</p>
<p> Absatz 2</p>
<p> Absatz 3</p>
<p> Absatz 4</p>
<p> Absatz 5</p>
</body>
</html>
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, Programmieren & Softwareentwicklung
Warum vermischt du js und jQuery? Mach es doch direkt so:
$(document).ready(function()
{
$(window).on('load', function()
{
$('p').addClass('abschnitt');
$('.abschnitt').text('neuer jQuerytext');
});
}
Ich sehe da jetzt zwar gerade keinen Fehler bei deinem JS, aber das sollte so gehen, ist viel kürzer und in jQuery
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.each($('p'),
function(index, elem){
$(elem).addClass('abschnitt');
$('.abschnitt').text('neuer jQuerytext');
}
);
});
</script>
Geht das so? Habe das each Konstrukt verwendet weil der Frqagesteller ja auch alle p Tags durchgegangen ist. Die Lösung von FaTech ist natürlich küruzer.
Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber