Scrape Comments (generated with javascript) using RSelenium/XML - javascript

I want to scrape comments from online news.
This is an example: Story
I believe to face the same problem as this one: Web data scraping (online news comments) with Scrapy (Python)
But since I'm only working with R, I could understand the challenges (#yuvi thanks for the elaborated answer) but wasn't able to translate a solution for my problem.
This one gives me the first comment, but again, all the others remain hidden somewhere:
library(RSelenium)
checkForServer()
startServer()
remDr <- remoteDriver(remoteServerAddr = "localhost"
, port = 4444
, browserName = "firefox"
)
remDr$open()
remDr$navigate("http://www.tagesanzeiger.ch/schweiz/standard/Auns-sagt-Ja-zur-EcopopInitiative/story/27047608")
kommentare <- remDr$findElement(using = 'xpath', "//*[(#class = 'message')]")
kommentare$getElementAttribute("outerHTML") #which returns me the first comment
Thanks in advance.

The comments are in a div with id=allComments you can access this element and returns its HTML:
kommentare <- remDr$findElement('css', "#allComments")
out <- kommentare$getElementAttribute("outerHTML")[[1]]
xData <- htmlParse(out, encoding = "UTF-8")
> head(xData["//*[(#class = 'message')]", fun = xmlValue])
[[1]]
[1] "Das einzige Richtige!! Das Schweizer-Volk wurde schon zu oft angelogen. JA zu ECOPOP"
[[2]]
[1] "Der Wutbürger ist selten ein guter Ratgeber!!"
[[3]]
[1] "ich bin nicht wütig, sondern beunruhigt, dass unsere Kultur, die nun wirklich viel Gutes hervorgebracht hat, so einem Hass ausgesetzt ist von den eigenen Landsleuten. Ich schätze die Vielfalt der Kulturen und Völker, auch meine eigene. Multikulti ist nichts natürlich Gewachsenes, sieht eher aus als Resultat einer tiefen Respektlosikeit gegenüber dem Leben selber."
[[4]]
[1] "Komme eben von der AUNS-Versammlung zurück. Muss Ihnen sagen, Herr Brand, dass ich keine Wutbürger angetroffen habe, sondern völlig normale, weltoffene und humorvolle Schweizer mit Weitblick. Einzig als der Vizepräsident der Grünen Luca Maggi zu Ecopop und der Goldinitiative Kontra gab, ging teilweise ein Raunen durch die Reihen. Meines Erachtens allerdings hat er seine Sache sehr gut gemacht – auch wenn seine Ansichten nicht gegenteiliger zu meinen sein könnten. Kommt zwar sehr selten vor, aber heute habe ich einmal mehr wieder nicht in Blochers Sinne abgestimmt. Gemäss Nicht-SVP-Lesart müssten solch \"faschistischen\" Kreise, in welchen ich verkehre, Abweichler wie mich ja mit Schimpf und Schande verbannen. Doch stattdessen haben wir Ja- und die Nein-Stimmenden einander zugeprostet :-)"
[[5]]
[1] "Frau Weber, Kultur ist nun mal nichts Statisches. Was Sie als Multikulti bezeichnen, gab es schon zur Zeit der alten Griechen in grossen Handelsstädten. Wo der Wohlstand ist, hat man sich schon immer getroffen, niedergelassen, einige sind geblieben, haben geheiratet, sich vermehrt ... und nach und nach hat sich Kultur leicht verändert. Was wir heute als \"unsere\" Kultur bezeichnen ist auch über Jahrhunderte gewachsen und nicht vom Himmel gefallen. Im übrigen: Der \"Multikulti\"-Nachwuchs assimiliert sich meist ziemlich stark an die Kultur im Gastland."
[[6]]
[1] "Herr Brand manchmal braucht es die Stimmen der Wutbürger. Wutbürger wird nur einer der ständig angelogen wird. Und wie das Sprichwort es sagt \"Lügen haben kurze Beine\""
As an aside the comments are available as JSON at http://www.tagesanzeiger.ch/api/articles/27047608/comments
myComments <- fromJSON("http://www.tagesanzeiger.ch/api/articles/27047608/comments")
> lapply(myComments$comments[1:6], '[[', 'message')
[[1]]
[1] "Warum ich gezwungen werde bei Ecopop JA zu stimmen? Weil der BR bis heute keine Anstalt macht, die angenommene Initiative zur Masseneinwanderung umzusetzen! Oder glaubt der BR in allem Ernst, dass er unserem Land eine jährliche Zuwanderung von 80'000 Menschen zumuten könne?"
[[2]]
[1] "Durch Ecopop kommen gewissenlose Anklagevertreter zur Macht, weil sie den Schweizern wohlklingende Versprechen machen. Doch sie lügen! Sie halten ihre Versprechungen nicht. Sie werden das nie tun! Scharfmacher befreien sich selbst, aber sie versklaven das Volk. Lasst uns nun dafür kämpfen, die Schweiz zu befreien \023 die nationalen Schranken niederzureißen \023 die Gier, den Hass und die Ausländerfeindlichkeit beiseite zu werfen. Lasst uns kämpfen für eine Schweiz der Vernunft \023 eine Schweiz, in der Einwanderung und Fortschritt zu unser aller Glück führen werden. Schweizer, im Namen der direkten Demokratie, lasst uns zusammen stehen! Ein Federzug von Schweizer Hand, und neu erschaffen wird die Erde. Blicke empor in das Licht der Hoffnung, liebe Schweiz! Blicke empor und stimme NEIN zu Ecopop!"
[[3]]
[1] "viele spekulieren hier, dass es ein ja oder ein nein am 30.11 gäbe, was momentan reines Kaffisatzlesen ist. Das hängt schlussendlich alles vom Mobilsierungspotential der Befürworter oder Gegner ab. Was sicher ist: wenn die Gegner wie bei der MEI den Einsatz verschlafen, in der Annahme, dass eh ein nein resultieren werde, könnte es ein böses Erwachen am 30.11 geben."
[[4]]
[1] "Schon aus der Psychoanalyse weiss man, dass Menschen mit paranoiden Vorstellungen, sich darin verbissen selbst eingeschlossen haben, zuerst einmal ihren Weg weiter gehen müssen, so tief wie möglich fallen, um dann auf diesem neuen Boden veränderter Erkenntnis wieder eine Richtung bestimmen können. Darin erkenne ich absolut eine Parallele zu einer wachsend verbreiteten und infizierten Haltung einer Menschenmasse bereits, die noch schwer aufzuhalten ist. Es existiert keine EU- Diktatur, es existiert aber der Begriff \" psychologische Kopfwäsche und florierende Ansteckung \", bis zur Massenbegeisterung, kein unbekanntes Phänomen, wobei Konsequenzen und Folgen gar keinen realen Platz mehr finden können."
[[5]]
[1] "Jetzt mal ganz abgesehen von ecopop:<BR>Dieser Reimann sollte hinter die Bücher gehen! <BR>1. Die vorgeschlagene Verfassungsänderung bezüglich Gold mag ja in der Theorie schön sein, funktioniert aber nicht in der Realität! <BR>2. schafft diese Schnapsidee die Unabhängigkeit der Nationalbank ab und verunmöglicht nötige monetäre Massnahmen, die von ausserordentlicher Wichtigkeit sind für die heutige geldpolitische Lage."
[[6]]
[1] "Hallo Leute unbedingt ein Ja in die Urne-denn unsere Politiker verstehen nicht dass das Volk das Sagen hat. Bis heute wurde nicht mal eine Annäherung an unsere angenommene Initiative ( Zuwanderung in Erwägung beschlossen. Also ein JA 'JA' JA- wenn unsere Kinder( spätere Generation) noch später die Möglichkeit haben sollen günstigen Wohnraum und vor allem Arbeit. DANKE !"

Related

Split text by regex

I wrote this regex - ([0-9][-][0-9]{2,3}.*[A-Za-z]) but it's not is what i want
https://regex101.com/r/A5DbyY/1 - text that need to split
I need get array like this:
[
"1-10 Klinische Untersuchung",
"1-100Klinische Untersuchung in Allgemeinanästhesie
Hinw.:Die Allgemeinanästhesie ist im Kode enthalten
Dieser Kode ist nur dann zu verwenden, wenn die Untersuchung unter Anästhesie als
selbständige Maßnahme durchgeführt wird. Erfolgt in der gleichen Sitzung ein invasiver
oder operativer Eingriff, der eine Anästhesie erfordert, ist die Untersuchung nicht gesondert
zu kodieren
Untersuchung einzelner Körpersysteme
(1-20...1-33)
Hinw.:Das Anästhesieverfahren bei einer diagnostischen Maßnahme kann zusätzlich kodiert werden, sofern die
diagnostische Maßnahme üblicherweise ohne Allgemeinanästhesie durchgeführt wird (8-90)",
"1-20 Neurologische Untersuchungen
Hinw.:Das neurologische Monitoring ist gesondert zu kodieren (8-92)",
"1-202Diagnostik zur Feststellung des irreversiblen Hirnfunktionsausfalls
Hinw.:Diese Kodes sind nur zu verwenden bei Diagnostik nach der jeweils gültigen Fortschreibung
der Richtlinie der Bundesärztekammer zur Feststellung des irreversiblen
Hirnfunktionsausfalls (siehe im Zusammenhang mit einer Organspende auch § 5 und § 16
Abs. 1 Satz 1 Nr. 1 Transplantationsgesetz)
Die durchgeführten Einzelmaßnahmen sind nicht gesondert zu kodieren"
]
You can split on the assertion instead of a match, and update the pattern to a case insensitive variant with a negated character class:
^(?=[0-9]-[0-9]{2,3}(?![0-9])[^a-z\n]*[a-z])
^(?=\d-\d{2,3}(?!\d)[^a-z\n]*[a-z])
The first pattern matches:
^ Start of string
(?= Positive lookahead
[0-9]-[0-9]{2,3}(?![0-9]) Match 1 digit - and then 2 or 3 digits not directly followed by a digit to the right of the current position
[^a-z\n]* Match optional chars other than a-z or a newline
[a-z] Match a char a-zA-Z
) Close the lookahead
const regex = /^(?=[0-9]-[0-9]{2,3}(?![0-9])[^a-z\n]*[a-z])/mgi;
const str = `1-10 Klinische Untersuchung
1-100Klinische Untersuchung in Allgemeinanästhesie
Hinw.:Die Allgemeinanästhesie ist im Kode enthalten
Dieser Kode ist nur dann zu verwenden, wenn die Untersuchung unter Anästhesie als
selbständige Maßnahme durchgeführt wird. Erfolgt in der gleichen Sitzung ein invasiver
oder operativer Eingriff, der eine Anästhesie erfordert, ist die Untersuchung nicht gesondert
zu kodieren
Untersuchung einzelner Körpersysteme
(1-20...1-33)
Hinw.:Das Anästhesieverfahren bei einer diagnostischen Maßnahme kann zusätzlich kodiert werden, sofern die
diagnostische Maßnahme üblicherweise ohne Allgemeinanästhesie durchgeführt wird (8-90)
1-20 Neurologische Untersuchungen
Hinw.:Das neurologische Monitoring ist gesondert zu kodieren (8-92)
1-202Diagnostik zur Feststellung des irreversiblen Hirnfunktionsausfalls
Hinw.:Diese Kodes sind nur zu verwenden bei Diagnostik nach der jeweils gültigen Fortschreibung
der Richtlinie der Bundesärztekammer zur Feststellung des irreversiblen
Hirnfunktionsausfalls (siehe im Zusammenhang mit einer Organspende auch § 5 und § 16
Abs. 1 Satz 1 Nr. 1 Transplantationsgesetz)
Die durchgeführten Einzelmaßnahmen sind nicht gesondert zu kodieren
1-202.0Bei einem potenziellen Organspender
Hinw.:Als Datum der Leistungserbringung ist das Datum anzugeben, an welchem mit der
Diagnostik des irreversiblen Hirnfunktionsausfalls begonnen wurde
Nicht angegeben werden dürfen diese Kodes, wenn der Patient zu Lebzeiten einer möglichen
Organspende widersprochen hat oder medizinische Kontraindikationen für eine
Organspende vorliegen
.00Ohne Feststellung des irreversiblen Hirnfunktionsausfalls
.01Mit Feststellung des irreversiblen Hirnfunktionsausfalls`;
console.log(str.split(regex));
I am not sure I am clear on when you want to split, so I make this assumtion:
split at a line that begins with N-M, where N is a single digit, and M are 2-3 digits, followed by a non-digit char
const input = `1-10 Klinische Untersuchung
1-100Klinische Untersuchung in Allgemeinanästhesie
Hinw.:Die Allgemeinanästhesie ist im Kode enthalten
Dieser Kode ist nur dann zu verwenden, wenn die Untersuchung unter Anästhesie als
selbständige Maßnahme durchgeführt wird. Erfolgt in der gleichen Sitzung ein invasiver
oder operativer Eingriff, der eine Anästhesie erfordert, ist die Untersuchung nicht gesondert
zu kodieren
Untersuchung einzelner Körpersysteme
(1-20...1-33)
Hinw.:Das Anästhesieverfahren bei einer diagnostischen Maßnahme kann zusätzlich kodiert werden, sofern die
diagnostische Maßnahme üblicherweise ohne Allgemeinanästhesie durchgeführt wird (8-90)
1-20 Neurologische Untersuchungen
Hinw.:Das neurologische Monitoring ist gesondert zu kodieren (8-92)
1-202Diagnostik zur Feststellung des irreversiblen Hirnfunktionsausfalls
Hinw.:Diese Kodes sind nur zu verwenden bei Diagnostik nach der jeweils gültigen Fortschreibung
der Richtlinie der Bundesärztekammer zur Feststellung des irreversiblen
Hirnfunktionsausfalls (siehe im Zusammenhang mit einer Organspende auch § 5 und § 16
Abs. 1 Satz 1 Nr. 1 Transplantationsgesetz)
Die durchgeführten Einzelmaßnahmen sind nicht gesondert zu kodieren
1-202.0Bei einem potenziellen Organspender
Hinw.:Als Datum der Leistungserbringung ist das Datum anzugeben, an welchem mit der
Diagnostik des irreversiblen Hirnfunktionsausfalls begonnen wurde
Nicht angegeben werden dürfen diese Kodes, wenn der Patient zu Lebzeiten einer möglichen
Organspende widersprochen hat oder medizinische Kontraindikationen für eine
Organspende vorliegen
.00Ohne Feststellung des irreversiblen Hirnfunktionsausfalls
.01Mit Feststellung des irreversiblen Hirnfunktionsausfalls`;
const result = input.split(/(?:^|[\n\r]+)(?=\d-\d{2,3}[^d])/);
console.log(result);
Explanation of split regex:
(?:^|[\n\r]+) -- non-capture group for either the beginning of string or newlines (because of non-capture group the newlines are not in the resulting array)
(?=\d-\d{2,3}[^d]) -- positive lookahead for a digit, -, 2-3 digits, and a non-digit char

How can i get the value of the stepSize of the Axes?

Frage
Was kann ich machen? Wenn ich in englisch schreibe, kann ich die Frage nicht abschicken.

How to dynamically query a for-loop using url paramaters with axios and vuejs

I recently started to experiment with the WordPress Rest API and VueJs. I am trying to accomplish the following:
I use Axios to fetch an API URL (my WP REST API website) to build a list of posts. This works perfectly using the code(s) below.
Next (this is what I can't manage to make it work), I need to be able to 'filter' the for loop using url parameter queries. The parameter is 'country'. Thus, when clicking on a button 'France', e.g. the parameter: ?country=france should be added to the base URL.
Basically I tried to add simple functions on button clicks to these buttons (france & portugal). Please check my code to see what I tried so far.
HTML Code
<div class="row">
<button v-on:click="getFrance" id="france" class="m-2">France</button>
<button v-on:click="getPortugal" id="portugal" class="m-2">Portugal</button>
<form class="form-inline" v-on:submit.prevent="searchCountry">
<input type="text" id="nameInput" class="form-control mb-2 mr-sm-2 mb-sm-0" placeholder="Frankrijk" v-model="country">
<input type="submit" class="btn btn-primary"></input>
</form>
{{country}}
</div>
<div class="row">
<template>
<div class="col-6" v-for="post of posts" :key="post.id">
<div class="card">
<img v-bind:src="post.acf.header_picture.url" class="card-img-top" alt="Card image cap">
<div class="card-body v-html">
<h5>{{ post.title.rendered }}</h5>
</div>
<div class="card-footer">
<a><button class="btn-sm btn-warning">Read more</button></a>
</div>
</div>
</div>
</template>
</div>
</div>
</div>
JS Code
var app = new Vue({
el: '#app',
data () {
return {
country : '',
posts : [] }
},
mounted () {
axios
.get('<<WP REST API URL>>', {
params: {
country: this.country
}
})
.then(response => {
this.posts = response.data
})
},
methods : {
getFrance: function(){
this.country = 'france'
},
getPortugal: function(){
this.country = 'portugal'
}
}
})
EDIT: I added the Response Data of the URL as requested. However, it's quite a big chunk of data, so let me know if this is not what you're looking for.
acf: Object
about_accommodation: "<ul>↵<li><strong>Tent</strong>: de tenten zijn voor 4 personen en bestaan uit 2 delen die beide geschikt zijn voor 2 personen. Naast het slaapdeel is er een plek waar de bagage kan liggen, wel zo fijn dus. Er is hier geen slaapmateriaal aanwezig, dus je dient zelf een matje, slaapzak en kussen mee te nemen. Het is mogelijk om zo’n ‘compartiment’ privé te boeken.</li>↵<li><strong>Sheddie</strong>: deze gezellige houten huisjes zijn een stuk comfortabeler dan de tenten en zijn geschikt voor 2 personen. Er is een groot bed aanwezig, waar 2 personen in kunnen slapen. Je kunt ter plekke beddengoed huren of zelf een slaapzak en kussen meenemen. Ook is er voldoende ruimte voor je bagage en zelfs een surfplank. Je kunt er net staan, wel zo makkelijk om je even op jezelf om te kleden voor de surfsessie. Ook deze kun je privé boeken.</li>↵<li><strong>Sheddie Deluxe</strong>: deze tenten zijn nog groter dan de sheddies en dus nog een stuk comfortabeler. Je kunt kiezen tussen 2 losse bedden of een groot 2-persoonsbed, ideaal voor koppels. Ook hier zijn matrassen aanwezig en heb je de optie om een beddengoedpakket bij te boeken. Indien je deze optie privé wilt, is dat mogelijk.</li>↵<li><strong>Tipi-Deluxe: </strong>De Tipi Deluxe is een prachtig ruimte tipi-tent met twee losse of 1 groot bed met een mooie aankleding. Dit is verblijven in stijl!</li>↵</ul>↵"
about_activities: "<ul>↵<li><strong>Party:</strong> 18+, dat betekent party! Vanaf het surfkamp kun je lopend naar tal van leuke barretjes die tot in de vroege uurtjes open zijn</li>↵<li><strong>Trips: </strong>tijdens jouw verblijf kun je deelnemen aan de daguitstap naar San Sebastian, een fantastische stad die zeker een bezoekje waard zijn. Ontdek de echte gastronomie die Spanje te bieden heeft</li>↵<li><strong>Yoga:</strong> kies voor de yogalessen voor de ideale ontspanning en een leuke afwisseling met het surfen. Dit is de beste manier om je spieren even helemaal bij te laten komen na een flinke inspanning in het water</li>↵<li><strong>Skate & Beach:</strong> ook naast het surfen is er van alles te doen. Cruise over de boulevard van Moliets en geniet van het vrije leven</li>↵</ul>↵"
about_facilities: Array(8)
about_guests: "<p>In het surfkamp vind je vooral Nederlandstaligen, de meesten tussen de 18 en de 25 jaar oud. De sheddies zijn perfect om als koppel of vrienden te verblijven maar ook solo reizigers weten een weg te vinden naar Surfblend Moliets</p>↵"
about_meals: "<ul>↵<li><strong>Eten:</strong> het halfpension is zeker aan te raden. Je zult 8 x ontbijten (incl. nadat je aankomt in het surfkamp na de busreis) en 5 x wordt er een divers en lekker diner geserveerd. Het hoogtepunt voor velen is de wekelijkse barbecue, gegarandeerd het begin van een mooie avond. In Zarautz zelf zijn er een aantal leuke opties voor lunch, maar voor ontbijt en diner is de maaltijd-optie aan te raden – wel zo makkelijk en het is ook nog eens heel erg lekker</li>↵<li><strong>Dieetwensen:</strong> het is geen probleem indien je een bepaalde dieetwens hebt. Geef dit van te voren even aan bij de kampleiding</li>↵<li><strong>Kookfaciliteiten:</strong> in het surfkamp zijn verder geen kookfaciliteiten aanwezig die door de gasten kunnen worden gebruikt</li>↵</ul>↵"
about_surf_conditions: "<ul>↵<li><strong>Beginners:</strong> beginnende surfers raden wij de cursus van 15 uur ten zeerste aan. Zeker in het begin is surfen een vrij lastig te leren sport, waarbij goede training vereist is.</li>↵<li><strong>Intermediate:</strong> intermediate surfers raden wij de cursus van 10 uur ten zeerste aan.</li>↵<li><strong>Gevorderd: </strong>gevorderde surfers kunnen ervoor kiezen om alleen gebruik te maken van het surfmateriaal.</li>↵</ul>↵"
about_surf_holiday: "<ul>↵<li><strong>Het kamp: </strong>dit surfkamp biedt werkelijk alles: surfen, veel fun, leuke activiteiten en uiteraard een flinke dosis party! Alle gasten zijn ten minste 18 jaar oud en hierdoor ontstaat er een leuke sfeer waar iedereen uit is op hetzelfde: een fantastische tijd hebben. Het prachtige surfstrand van Molietes bevindt zich op loopafstand van het surfkamp, ideaal dus. En ook de vele barretjes in het centrum kun je gemakkelijk bereiken. Ben jij klaar voor dé surfvakantie van 2020?</li>↵<li><strong>Moliets: </strong>dit Franse dorpje ademt surf, meer dan waar dan ook. In de zomer komen hier surfers van alle hoeken uit de wereld naartoe om de beroemde golven van Moliets te proberen. Ook is er een gezellige boulevard met enkele horecagelegenheden.</li>↵<li><strong>Vervoer: </strong>wat erg fijn is, is dat Moliets vanuit Nederland en België met de bus bereikbaar is. Zie onderaan deze pagina ‘vervoer’ voor meer informatie.</li>↵</ul>↵"
about_surf_lessons: "<ul>↵<li><strong>Surfen:</strong> je kunt kiezen uit de volgende surfpakketten:↵<ul>↵<li>Pakket S: 3 dagen surfles per week + gebruik surfmateriaal</li>↵<li>Pakket M: 5 dagen surfles per week + gebruik surfmateriaal</li>↵<li>Alleen gebruik surfmateriaal</li>↵<li>Er worden ook theorielessen gegeven</li>↵<li>Voor beginnende surfers raden wij Pakket L ten zeerste aan. Zeker in het begin is surfen een vrij lastig te leren sport, waarbij goede training vereist is</li>↵</ul>↵</li>↵<li><strong>Surfmateriaal:</strong> bij alle pakketten is het gebruik van het surfmateriaal (surfboard & wetstuit) inbegrepen in de prijs van het verblijf. Het is echter wel zo dat de gasten die surflessen volgen, voorrang krijgen op het surfmateriaal. Meestal levert dit geen problemen op en zeker ook buiten de lessen om kan er gewoon gesurft worden.</li>↵</ul>↵<p> </p>↵"
about_transport: "<ul>↵<li><strong>Surfbus: </strong>de bussen naar Moliets vertrekken op vrijdagmiddag vanaf Amsterdam, Utrecht, Den Bosch, Breda, Antwerpen en Gent. De vertrektijd zal liggen tussen 13:00 en 18:30 uur. Op de zaterdag van jouw vertrek zal de bus aan het einde van de middag terugrijden richting België en Nederland, waar je dan zondagochtend aankomt. Rijdt vanaf 21 juni t/m 15 september 2019 (vertrek vrijdagmiddag, terugkomst zondagochtend).</li>↵<li><strong>Eigen vervoer:</strong> het is geen probleem om met de auto naar camping Moliets te komen. Er zijn mogelijkheden om gratis te parkeren.</li>↵</ul>↵"
accommodation: "Gedeelde en privé tenten"
accommodation_type: "Surfkamp"
activities_gallery: Array(3)
add_ons: Object
alert_checkbox: Array(1)
alert_text: "<p>Er zijn nog enkele plekken beschikbaar voor deze zomer, wacht niet met boeken!</p>↵"
arrival: "Aankomst en vertrek op zaterdag"
availability: "Raakt spoedig volgeboekt"
average_age: "18 - 25"
carousel: Array(3)
check-in-check-out: (...)
country: "Frankrijk"
covid: true
etc.etc.
From my understanding, if you're filtering posts, it must be done on the API side, so you get all the "France" posts, don't get unnecessary info, and don't waste memory.
If you can't filter it on API side (but why send URL parameters then) and getting all the posts, you can create a method like to use it to filter posts:
filterPostsByCountry: function() {
return this.posts.filter(post => post.country === this.country);
}

Writing javascript to certain places of a page

I am tasked with a school project using JavaScript. I want to make a slideshow using the Materialize build in plugin. I have to use JavaScript arrays to make the list, but now the content is hard written in html.
I have the 3 arrays build in a file called main.js (which is propperly linked).
I need to know how to generate the LI elements with the right content in them, I figured I had to use a for loop. This works if I want to display the items in the arrays without any styling on a separate page.
How can I put them in the slides? It should look like this
main.js:
<div class="col s12 m12">
<div class="card grey darken-2">
<div class="card-content white-text">
<span class="card-title">Acteurs</span>
<div class="slider grey darken-2">
<ul class="slides grey darken-2">
<!--<li>
<h5 class='subtitle'>Dexter Morgan</h5>
<div class='slide-img'><img src='img/DexterMorgan.png'></div>
<p>Sinds zijn jeugd voelt Dexter een drang om te moorden, die hem wordt ingefluisterd door een innerlijke stem die hij "the Dark Passenger" noemt. Hij houdt zich aan een ethische code die hem werd opgelegd door zijn adoptievader Harry Morgan, die zegt dat hij enkel mensen mag vermoorden die zelf moorden op hun geweten hebben.</p><br />
<p>Dexter beschouwt zichzelf als emotioneel afgesloten van de rest van de mensheid. Vaak refereert hij naar een innerlijk gevoel van leegheid en zegt hij dat hij moordt om zich levendig te voelen. Hij zegt dat hij geen gevoelens of geweten heeft, en dat al zijn emotionele reacties een deel zijn van een goed ingestudeerde rol om zijn ware aard te verbergen. Hij heeft geen interesse in romantiek of seks en beschouwt zijn relatie met zijn vriendin (en later vrouw) Rita Bennett als een onderdeel van zijn dekmantel.</p><br />
<p>De modus operandi van Dexter zorgt er niet alleen voor dat hij een maximum aan opwinding verkrijgt uit het vermoorden van zijn slachtoffers, maar zorgt er ook voor dat er een minimum aan sporen achterblijft. Dexter kiest zijn slachtoffers uit volgens de door zijn adoptievader opgelegde "code" en onderzoekt eigenhandig of ze moordenaars zijn of niet, waarna hij ze (enkel in de televisieserie) opzoekt om na te gaan of ze opnieuw zullen moorden. Daarna zoekt hij een ruimte die vaak symbolisch in verbinding staat met het slachtoffer, om hem te vermoorden. Hij overdekt alles met plasticfolie, zodat bloedsporen onmogelijk zijn. Meestal hangt hij ook foto's en bewijsstukken op van de misdaden die zijn slachtoffers hebben begaan.</p>
</li>
<li>
<h5 class='subtitle'>Debra Morgan</h5>
<div class='slide-img'><img src='img/DebraMorgan.png'></div>
<p>Debra werkt aanvankelijk als undercoveragent voor de politie. Ze wordt voorgesteld als de zus van Dexter Morgan, ware het niet dat al in de eerste aflevering blijkt dat Dexter eigenlijk geadopteerd werd door Debra's vader Harry Morgan toen ze nog zeer jong was. Debra en Dexter hebben een extreem nauwe band met elkaar. Het personage heeft er al verschillende relaties opzitten en is in de loop der tijd ontzettend geëvolueerd. In seizoen 1 wordt Debra verliefd op een man die zichzelf Rudy Cooper noemt, maar uiteindelijk blijkt het te gaan om "Ice Truck Killer" Brian Moser, de broer van Dexter. Ze wordt door hem ontvoerd, maar Dexter kan haar redden. In seizoen 2 heeft ze een relatie met FBI-agent Frank Lundy, die later in seizoen 4 voor haar ogen wordt vermoord. Nadat ook haar schoonzus Rita Bennett vermoord werd, helpt Debra haar broer Dexter in de opvoeding van zijn zoontje Harrisson.</p><br />
<p>Debra is geboren als dochter van Doris en Harry Morgan en is de pleegzus van Dexter Morgan. Al van jongs af aan is ze stoer en gebruikt ze grove woorden, maar hunkert ze eigenlijk naar aandacht van haar vader. Ze benijdt Dexter voor al de tijd die hij en Harry samen doorbrengen, maar heeft er geen idee van dat Harry hem toen leerde hoe hij ongestraft kon moorden.</p><br />
<p>Als ze zestien is, sterft haar moeder aan kanker. Sindsdien is ze vastberaden om net als haar vader rechercheur te worden. Ze begint schieten te leren met het wapen van haar vader. Dexter ontdekt dit en vertelt dit aan Harry, die haar straft. Een razende Debra zegt dan tegen Dexter dat Harry nooit in hun leven toegelaten mocht worden; al gauw trekt ze haar woorden weer in en verontschuldigt ze zich.</p>
</li>
<li>
<h5 class='subtitle'>Angel Batista</h5>
<div class='slide-img'><img src='img/AngelBastista.png'></div>
<p>Angel is inspecteur bij de sectie Moord van het Miami Metro Police Department. Hij werkt er nauw samen met Dexter Morgan, die hij bewondert omwille van zijn expertise rond seriemoordenaars. Hij beschouwt zichzelf als Dexters' beste vriend, maar kan zich niet echt vinden in zijn fascinatie voor bloed. In de boekenreeks is Batista geen rechercheur, maar een forensisch expert en rechtstreeks collega van Dexter. Batista heeft een vrij droge vorm van humor.</p><br />
<p>Angel beloofde zijn vader op diens sterfbed om steeds over alles en iedereen eerlijk te zijn. Dit brengt hem later in problemen, wanneer hij na een avontuurtje met een andere vrouw zijn daden bekent aan zijn vrouw, die meteen een einde maakt aan hun huwelijk. Na maanden van eenzaamheid zoekt Batista heil in de spirituele wereld om van zijn pijn verlost te raken. Batista denkt dat hij de beste vriend van Dexter is, wat Dexter vreemd vindt, want hij heeft hem naar eigen zeggen nooit een reden gegeven om dit te denken.</p>
</li>
<li>
<h5 class='subtitle'>Vince Masuka</h5>
<div class='slide-img'><img src='img/VinceMasuka.png'></div>
<p>Hij heeft een seksobsessie (hoe kinkier hoe beter) en is er niet verlegen om toenadering te zoeken tot elke vrouw die hij tegenkomt. Toch was hij in staat om "normaal" te doen, bijvoorbeeld toen Angel Batista in het ziekenhuis lag of wanneer Debra helemaal over haar toeren was door de terugkeer van Lundy. Op een bepaald moment confronteert Joey Quinn Vince met het feit dat omwille van zijn gedrag eigenlijk niemand hem kan uitstaan, wat voor hem een behoorlijke schok is. Later blijkt echter dat Quinn overdreef, en dat zijn collega's het gedrag van Vince best amusant vinden, zolang hij niet overdrijft.</p>
</li>
<li>
<h5 class='subtitle'>Joey Quinn</h5>
<div class='slide-img'><img src='img/JoeyQuinn.png'></div>
<p>Quinn lijkt een boontje te hebben voor zijn nieuwe partner, Debra Morgan, en gaat zelfs zo ver in zijn charme-offensief dat hij een informant inschakelt om haar te helpen in de zaak rond Oscar Prado. Over Quinns verleden is maar weinig bekend, wat bij Debra vragen oproept, zeker wanneer ze door de dienst Interne Zaken wordt gevraagd om hem discreet in het oog te houden. Quinn komt hier al snel achter en geeft uiteindelijk toe dat hij in het verleden de schuld kreeg voor de dood van een collega. Debra vertrouwt hem niet langer en raadt Dexter af of Quinn uit te nodigen op zijn huwelijk. Quinn maakt uiteindelijk toch zijn opwachting.</p>
</li>
<li>
<h5 class='subtitle'>Rita Bennett</h5>
<div class='slide-img'><img src='img/RitaBennett.png'></div>
<p>Rita Benett verschijnt in de eerste aflevering als Dexter Morgans' vriendin. Ze blijkt mishandeld en seksueel misbruikt te zijn door haar ex-man, Paul Bennett. Dexters' zus Debra Morgan ontving indertijd een oproep over huishoudelijk geweld en redde haar leven. Rita heeft ook twee kinderen, Astor en Cody Bennett. Onwetend over Dexters' leven als seriemoordenaar, fungeert ze doorheen het eerste seizoen vaak als zijn grootste steun. Ze speelt een grote rol in de aflevering "Return to Sender", waarin Paul Bennett wordt vrijgelaten uit de gevangenis en naar het verjaardagsfeest van zijn dochter wil komen. In "Circle of Friends" maakt Rita hem duidelijk dat hij zijn kinderen voorlopig enkel onder toezicht te zien krijgt, voordat ze toestemming geeft voor vrije momenten. Paul gaat aanvankelijk akkoord, maar in de aflevering "Father Knows Best" hervalt Paul in zijn oude gewoonten en gebruikt hij geweld om zijn kinderen te zien. Hij dringt haar huis binnen en Rita verdedigt zich door hem neer te slaan met een honkbalknuppel. Paul dient een klacht in tegen Rita en bedreigt ook Dexter. Dexter slaagt hem KO en voert hem terug naar zijn hotel, waar hij doet uitschijnen dat Paul drugs gebruikt heeft. Dexter waarschuwt de politie en de onder voorwaarden vrijgelaten Paul belandt terug in de gevangenis.</p>
</li>
<li>
<h5 class='subtitle'>James Doakes</h5>
<div class='slide-img'><img src='img/JamesDoakes.png'></div>
<p>Doakes haat Dexter; hij is de enige persoon die merkt dat Dexter zich anders voordoet dan hij werkelijk is. Doakes verdenkt Dexter er openlijk van iets te verbergen, en dit vermoeden gaat er alleen nog maar op vooruit wanneer hij ontdekt dat Dexter informatie over de Ice Truck Killer-zaak achterhoudt.</p>
</li>-->
</ul>
</div>
</div>
</div>
</div>
/*
* Simulatie database in JS
* Gebruik gemaakt van: Arrays en For loop
*/
var actors = ["Dexter Morgan","Debra Morgan", "Angel Batista", "Vince Masuka", "Joey Quinn", "Rita Bennett", "James Doakes"];
var images = ["DexterMorgan.png", "DebraMorgan.png", "AngelBatista.png", "VinceMasuka.png", "JoeyQuinn.png", "RitaBennett.png", "JamesDoakes.png"];
var bio = [
"<p>Sinds zijn jeugd voelt Dexter een drang om te moorden, die hem wordt ingefluisterd door een innerlijke stem die hij "the Dark Passenger" noemt. Hij houdt zich aan een ethische code die hem werd opgelegd door zijn adoptievader Harry Morgan, die zegt dat hij enkel mensen mag vermoorden die zelf moorden op hun geweten hebben.</p><br />
<p>Dexter beschouwt zichzelf als emotioneel afgesloten van de rest van de mensheid. Vaak refereert hij naar een innerlijk gevoel van leegheid en zegt hij dat hij moordt om zich levendig te voelen. Hij zegt dat hij geen gevoelens of geweten heeft, en dat al zijn emotionele reacties een deel zijn van een goed ingestudeerde rol om zijn ware aard te verbergen. Hij heeft geen interesse in romantiek of seks en beschouwt zijn relatie met zijn vriendin (en later vrouw) Rita Bennett als een onderdeel van zijn dekmantel.</p><br />
<p>De modus operandi van Dexter zorgt er niet alleen voor dat hij een maximum aan opwinding verkrijgt uit het vermoorden van zijn slachtoffers, maar zorgt er ook voor dat er een minimum aan sporen achterblijft. Dexter kiest zijn slachtoffers uit volgens de door zijn adoptievader opgelegde "code" en onderzoekt eigenhandig of ze moordenaars zijn of niet, waarna hij ze (enkel in de televisieserie) opzoekt om na te gaan of ze opnieuw zullen moorden. Daarna zoekt hij een ruimte die vaak symbolisch in verbinding staat met het slachtoffer, om hem te vermoorden. Hij overdekt alles met plasticfolie, zodat bloedsporen onmogelijk zijn. Meestal hangt hij ook foto's en bewijsstukken op van de misdaden die zijn slachtoffers hebben begaan.</p>",
"<p>Debra werkt aanvankelijk als undercoveragent voor de politie. Ze wordt voorgesteld als de zus van Dexter Morgan, ware het niet dat al in de eerste aflevering blijkt dat Dexter eigenlijk geadopteerd werd door Debra's vader Harry Morgan toen ze nog zeer jong was. Debra en Dexter hebben een extreem nauwe band met elkaar. Het personage heeft er al verschillende relaties opzitten en is in de loop der tijd ontzettend geëvolueerd. In seizoen 1 wordt Debra verliefd op een man die zichzelf Rudy Cooper noemt, maar uiteindelijk blijkt het te gaan om "Ice Truck Killer" Brian Moser, de broer van Dexter. Ze wordt door hem ontvoerd, maar Dexter kan haar redden. In seizoen 2 heeft ze een relatie met FBI-agent Frank Lundy, die later in seizoen 4 voor haar ogen wordt vermoord. Nadat ook haar schoonzus Rita Bennett vermoord werd, helpt Debra haar broer Dexter in de opvoeding van zijn zoontje Harrisson.</p><br />
<p>Debra is geboren als dochter van Doris en Harry Morgan en is de pleegzus van Dexter Morgan. Al van jongs af aan is ze stoer en gebruikt ze grove woorden, maar hunkert ze eigenlijk naar aandacht van haar vader. Ze benijdt Dexter voor al de tijd die hij en Harry samen doorbrengen, maar heeft er geen idee van dat Harry hem toen leerde hoe hij ongestraft kon moorden.</p><br />
<p>Als ze zestien is, sterft haar moeder aan kanker. Sindsdien is ze vastberaden om net als haar vader rechercheur te worden. Ze begint schieten te leren met het wapen van haar vader. Dexter ontdekt dit en vertelt dit aan Harry, die haar straft. Een razende Debra zegt dan tegen Dexter dat Harry nooit in hun leven toegelaten mocht worden; al gauw trekt ze haar woorden weer in en verontschuldigt ze zich.</p>",
"<p>Angel is inspecteur bij de sectie Moord van het Miami Metro Police Department. Hij werkt er nauw samen met Dexter Morgan, die hij bewondert omwille van zijn expertise rond seriemoordenaars. Hij beschouwt zichzelf als Dexters' beste vriend, maar kan zich niet echt vinden in zijn fascinatie voor bloed. In de boekenreeks is Batista geen rechercheur, maar een forensisch expert en rechtstreeks collega van Dexter. Batista heeft een vrij droge vorm van humor.</p><br />
<p>Angel beloofde zijn vader op diens sterfbed om steeds over alles en iedereen eerlijk te zijn. Dit brengt hem later in problemen, wanneer hij na een avontuurtje met een andere vrouw zijn daden bekent aan zijn vrouw, die meteen een einde maakt aan hun huwelijk. Na maanden van eenzaamheid zoekt Batista heil in de spirituele wereld om van zijn pijn verlost te raken. Batista denkt dat hij de beste vriend van Dexter is, wat Dexter vreemd vindt, want hij heeft hem naar eigen zeggen nooit een reden gegeven om dit te denken.</p>",
"<p>Hij heeft een seksobsessie (hoe kinkier hoe beter) en is er niet verlegen om toenadering te zoeken tot elke vrouw die hij tegenkomt. Toch was hij in staat om "normaal" te doen, bijvoorbeeld toen Angel Batista in het ziekenhuis lag of wanneer Debra helemaal over haar toeren was door de terugkeer van Lundy. Op een bepaald moment confronteert Joey Quinn Vince met het feit dat omwille van zijn gedrag eigenlijk niemand hem kan uitstaan, wat voor hem een behoorlijke schok is. Later blijkt echter dat Quinn overdreef, en dat zijn collega's het gedrag van Vince best amusant vinden, zolang hij niet overdrijft.</p>",
"<p>Quinn lijkt een boontje te hebben voor zijn nieuwe partner, Debra Morgan, en gaat zelfs zo ver in zijn charme-offensief dat hij een informant inschakelt om haar te helpen in de zaak rond Oscar Prado. Over Quinns verleden is maar weinig bekend, wat bij Debra vragen oproept, zeker wanneer ze door de dienst Interne Zaken wordt gevraagd om hem discreet in het oog te houden. Quinn komt hier al snel achter en geeft uiteindelijk toe dat hij in het verleden de schuld kreeg voor de dood van een collega. Debra vertrouwt hem niet langer en raadt Dexter af of Quinn uit te nodigen op zijn huwelijk. Quinn maakt uiteindelijk toch zijn opwachting.</p>",
"<p>Rita Benett verschijnt in de eerste aflevering als Dexter Morgans' vriendin. Ze blijkt mishandeld en seksueel misbruikt te zijn door haar ex-man, Paul Bennett. Dexters' zus Debra Morgan ontving indertijd een oproep over huishoudelijk geweld en redde haar leven. Rita heeft ook twee kinderen, Astor en Cody Bennett. Onwetend over Dexters' leven als seriemoordenaar, fungeert ze doorheen het eerste seizoen vaak als zijn grootste steun. Ze speelt een grote rol in de aflevering "Return to Sender", waarin Paul Bennett wordt vrijgelaten uit de gevangenis en naar het verjaardagsfeest van zijn dochter wil komen. In "Circle of Friends" maakt Rita hem duidelijk dat hij zijn kinderen voorlopig enkel onder toezicht te zien krijgt, voordat ze toestemming geeft voor vrije momenten. Paul gaat aanvankelijk akkoord, maar in de aflevering "Father Knows Best" hervalt Paul in zijn oude gewoonten en gebruikt hij geweld om zijn kinderen te zien. Hij dringt haar huis binnen en Rita verdedigt zich door hem neer te slaan met een honkbalknuppel. Paul dient een klacht in tegen Rita en bedreigt ook Dexter. Dexter slaagt hem KO en voert hem terug naar zijn hotel, waar hij doet uitschijnen dat Paul drugs gebruikt heeft. Dexter waarschuwt de politie en de onder voorwaarden vrijgelaten Paul belandt terug in de gevangenis.</p>",
"<p>Doakes haat Dexter; hij is de enige persoon die merkt dat Dexter zich anders voordoet dan hij werkelijk is. Doakes verdenkt Dexter er openlijk van iets te verbergen, en dit vermoeden gaat er alleen nog maar op vooruit wanneer hij ontdekt dat Dexter informatie over de Ice Truck Killer-zaak achterhoudt.</p>"
];
for(var i=0; i<actors.length; i++) {
document.write(actors[i]);
}
If i understand what you want correctly you can use document.createElement making a li in the for loop and append the text of the currently looped array item into it, Then we just add that newly created element to our placeholder in our case using appendChild.
Code:
var actors = ["Dexter Morgan","Debra Morgan", "Angel Batista", "Vince Masuka", "Joey Quinn", "Rita Bennett", "James Doakes"];
var placeholder = document.querySelector('.placeholder');
for(var i = 0;i < actors.length;i++) {
var li = document.createElement('li');
li.innerHTML = actors[i];
console.log(li);
placeholder.appendChild(li);
}
I've used a placeholder here to insert the items;
Example

Javascript onclick var

I have this script:
. '<button type="button" '.($searchQuery['can_used'] == 1 ? 'onclick="var con=confirm(\'Let op: dit is de laatste keer dat u dit bestand kan downloaden, na deze keer word het bestand automatisch verwijderd. Weet u zeker dat u deze bestand wil download?\')"' : '').' class="btn btn-info">Download het bestand...</button>'
. '<script type="text/javascript">alert(con)</script>';
Well, this is not working, I get an error what says 'con is not defined'. Because the var will not exist when I not click on the button. And I cannot click on the button because javascript will not continue on an error. How can I fix this? Is there other way to to this?
Thanks!
Thanks to David Thomas.
Fixed by creating the var before the confirm.
Uw bestand is gevonden! <br />U kunt dit bestand nog <b><u>1</b></u> keer downloaden via deze website. U kunt dit bestand tot en met <b><u>19-01-2038 04:14:07</b></u> downloaden. <br />Bestand naam: <b><u>download.rar</b></u> <br />Bestand grootte: <b><u>87.82 mb</b></u> <br /><br /><script>var con = false;</script><button type="button" onclick="con=confirm('Let op: dit is de laatste keer dat u dit bestand kan downloaden, na deze keer word het bestand automatisch verwijderd. Weet u zeker dat u dit bestand wilt downloaden?'), alert(con)" class="btn btn-info">Download het bestand...</button>
Thank you David.

Categories