Digital Commerce ist unser Kernthema. Und hierfür finden wir seit über 20 Jahren die strategischen, konzeptionellen und technischen Lösungen, die unsere Kund:innen und Projekte erfolgreich machen.Wir fragen regelmäßig unsere Kolleg:innen, Kund:innen und Freelancer:innen danach, was sie an uns schätzen.
Deshalb können wir Dir versichern, dass wir ein Team sind, in dem Du Dich wohlfühlen wirst, wenn Du offen & ehrlich bist und Spaß hast in Deiner Rolle mitzugestalten. Wenn ganzheitliche, pragmatische Lösungen sowie ein agil arbeitendes Umfeld Dein Ding sind, passen wir super zusammen.
In unserem 35 Personen umfassenden Team findest Du zahlreiche Professionen: Strategie, UX, UI, Text/Konzept, Analyse, Fullstack-, Backend- und Frontend-Entwicklung, Product Owner sowie Office-, Personal- und Agilitätspower.
function getJSONData() {
fetch(‚https://www.for-sale-digital.com/var/filtered_jobs.json‘)
.then(response => response.json())
.then(data => {
const pageTitle = document.title; // WordPress page titel
const textToRemove = ‚ – For Sale Digital‘;
let modifiedText = pageTitle.replace(textToRemove, „“);
const regex = /
// Ein DOM-Parser erstellen und das HTML parsen
const parser = new DOMParser();
// New array for matching entrys
const matchedJobs = data.filter(job => job.title === modifiedText);
//apply button links
const handle = matchedJobs[0].handle;
const link = ‚https://forsaledigital.onlyfy.jobs/apply/’+handle;
const buttons1 = document.getElementsByClassName(‚button-1‘);
const buttons2 = document.getElementsByClassName(‚button-2‘);
const buttons3 = document.getElementsByClassName(‚button-3‘);
// Da getElementsByClassName ein HTMLCollection-Objekt zurückgibt, muss über die Elemente iteriert werden
for (var i = 0; i < buttons1.length; i++) {
buttons1[i].setAttribute('href', link);
}
for (var i = 0; i < buttons2.length; i++) {
buttons2[i].setAttribute('href', link);
}
for (var i = 0; i < buttons3.length; i++) {
buttons3[i].setAttribute('href', link);
}
//titel
document.getElementById('job-title').innerHTML = matchedJobs[0].title;
document.getElementById('job-title-mobile').innerHTML = matchedJobs[0].title;
//keyfacts
const keyfacts = parser.parseFromString(matchedJobs[0].description, 'text/html');
const keyfactXpathExpression = `//*[text()='Keyfacts.']`;
const keyfactElement = keyfacts.evaluate(keyfactXpathExpression, keyfacts, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
if (keyfactElement) {
let liElement = keyfactElement.nextElementSibling.querySelector('li');
for (let i = 1; i <= 6; i++) {
const keyfactID = `job-keyfact-${i}`;
if (liElement) {
document.getElementById(keyfactID).innerHTML = liElement.textContent;
liElement = liElement.nextElementSibling;
} else {
document.getElementById(keyfactID).parentNode.parentNode.style.display = 'none';
}
}
}
// job intro
const jobIntro = parser.parseFromString(matchedJobs[0].description, 'text/html');
const xpathExpression = `//*[text()='Hallo! Schön, dass Du hierher gefunden hast!']`;
const element = jobIntro.evaluate(xpathExpression, jobIntro, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
document.getElementById('job-intro').innerHTML = element.nextElementSibling.outerHTML;
//benefits
const benefits = matchedJobs[0].job_contents[3].content;
const liElements = Array.from(benefits.matchAll(/
// Füge jedes li-Element in das entsprechende Element auf der Website ein
for (let i = 0; i < 7; i++) {
const jobTaskElement = document.getElementById(`job-benefit-${i + 1}`);
if (jobTaskElement && liElements[i]) {
jobTaskElement.innerHTML = liElements[i][0];
jobTaskElement.style.listStyleType = 'none';
}
}
//tasks
const task = matchedJobs[0].job_contents[1].content;
const liTexts = Array.from(task.matchAll(/
liTexts.forEach((text, index) => {
const taskElement = document.getElementById(`job-task-${index + 1}`);
// Überprüfe, ob das Element existiert, bevor du den Text einfügst
if (taskElement) {
// Setze den Textinhalt des ausgewählten Elements auf den aktuellen Text
taskElement.textContent = text;
}
});
// Alle übrig gebliebenen Elemente ausblenden
for (let i = liTexts.length + 1; i <= 7; i++) {
const taskElement = document.getElementById(`job-task-${i}`);
if (taskElement) {
taskElement.parentNode.parentNode.style.display = 'none';
}
}
//know how
const knowHow = matchedJobs[0].job_contents[2].content;
// Teile den Inhalt in zwei Teile basierend auf den
- Tags
const [firstUL, secondUL] = knowHow.split(„
„).map(part => part.trim() + „
„)
const knowHowTexts = Array.from(firstUL.matchAll(/
knowHowTexts.forEach((text, index) => {
const knowHowElement = document.getElementById(`job-know-how-${index + 1}`);
// Überprüfe, ob das Element existiert, bevor du den Text einfügst
if (knowHowElement) {
// Setze den Textinhalt des ausgewählten Elements auf den aktuellen Text
knowHowElement.textContent = text;
}
});
// Alle übrig gebliebenen Elemente ausblenden
for (let i = knowHowTexts.length + 1; i <= 7; i++) {
const knowHowElement = document.getElementById(`job-know-how-${i}`);
if (knowHowElement) {
knowHowElement.parentNode.parentNode.style.display = 'none';
}
}
//additional qualifications
const addQualTexts = Array.from(secondUL.matchAll(/
addQualTexts.forEach((text, index) => {
const addQualElement = document.getElementById(`job-add-qual-${index + 1}`);
// Überprüfe, ob das Element existiert, bevor du den Text einfügst
if (addQualElement) {
// Setze den Textinhalt des ausgewählten Elements auf den aktuellen Text
addQualElement.textContent = text;
}
});
// Alle übrig gebliebenen Elemente ausblenden
for (let i = addQualTexts.length + 1; i 0) {
for (const customField of matchedJobs[0].custom_fields) {
if (customField.custom_field_id === targetCustomFieldId) {
// Die gewünschte custom_field_id gefunden, Zugriff auf den „value“.
if (customField.values[0].value !== “) {
document.getElementById(‚job-faq-money-1‘).innerHTML = customField.values[0].value;
break; // Sobald der Wert gefunden wurde, die Schleife verlassen.
}
}
}
} else {
document.getElementById(‚job-faq-money-1′).parentNode.parentNode.parentNode.style.display = ’none‘;
}
})
.catch(error => {
console.error(‚Fehler beim Abrufen der JSON-Daten:‘, error);
});
}
// Funktion aufrufen, um die JSON-Daten abzurufen und zu verarbeiten
getJSONData();
Hallo! Schön, dass Du hierher gefunden hast!