My code is given below. I just want to hide the out put of “”acceptedAnswer”: {}” section if no accepteted answer found in the post… url: https://edulimit.com/answer/questions-title-12/
function extractQAPageSchema() {
//Question
const questionElement = document.querySelector("h2.wp-block-heading.qtitle");
const answerCountElement = document.querySelector("p.answercount");
const upvoteCountElement = document.querySelector("div.gb-container.gb-container-a89cbad3");
const questionTextElement = document.querySelector("p.question-text");
const qDatePubElement = document.querySelector("time.entry-date.published");
//for converting date to ISO format
const qDatePub = qDatePubElement.textContent.trim();
const parsedDate = new Date(qDatePub);
// end of ISO convert
//End Question
// Accepted Answer
const answerElement = document.querySelector("div.gb-container.gb-container-aa37b5a0");
const ansUpvoteCountElement = document.querySelector("div.gb-container.gb-container-f5b832ff");
const aDatePubElement = document.querySelector("time.entry-date.published.text");
//for converting date to ISO format
const aDatePub = qDatePubElement.textContent.trim();
const aparsedDate = new Date(aDatePub);
// end of ISO convert
const currentUrl = window.location.href;
const urlWithTest = currentUrl + "#acceptedAnswer";
//Suggested Answer
const schema = {
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": questionElement.textContent.trim(),
"text": questionTextElement.textContent.trim(),
"answerCount": parseInt(answerCountText = answerCountElement.textContent.trim()),
"upvoteCount": parseInt(upvoteCountText = upvoteCountElement.textContent.trim()),
"datePublished": isoFormattedDate = parsedDate.toISOString(),
"author": {
"@type": "Organization",
"name": "Edulimit Team",
"url": "https://edulimit.com/answer/author/wptest/"
},
"acceptedAnswer": {
"@type": "Answer",
"text": answerText = answerElement.textContent.replace(/n/g, ''),
"upvoteCount": parseInt(ansUpvoteCount = ansUpvoteCountElement.textContent.trim()),
"datePublished": aisoFormattedDate = aparsedDate.toISOString(),
"url": urlWithTest,
"author": {
"@type": "Organization",
"name": "Edulimit Varified Teacher",
"url": "https://edulimit.com/answer/author/wptest/"
}
},
"suggestedAnswer": []
}
};
return schema;
}
// Example usage
//const qaPageSchema = extractQAPageSchema();
const schema = extractQAPageSchema();
// Assuming you have the extractQAPageSchema() function from the previous example
// Call the function to extract the schema
// const qaPageSchema = extractQAPageSchema();
// Check if the schema was extracted successfully
// if (qaPageSchema)
if (schema) {
// Do something with the extracted schema, such as:
// 1. Print the schema to the console
// console.log(JSON.stringify(qaPageSchema, null, 2));
// console.log(JSON.stringify(schema, null, 2));
console.log(JSON.stringify(schema, null, 2));
// 2. Embed the schema into the HTML of the page
const scriptElement = document.createElement('script');
scriptElement.type = 'application/ld+json';
// scriptElement.textContent = JSON.stringify(qaPageSchema);
scriptElement.textContent = JSON.stringify(schema);
document.head.appendChild(scriptElement);
// ... other actions based on your use case
} else {
// Handle the case where the schema extraction failed
console.error("Failed to extract QAPage schema.");
}
Similary I want to hide the “suggestedAnswer”: [] section if no “suggestedAnswer” found in the post.. Althout “suggestedAnswer”: [] section is not defined in the post.
New contributor
Soumitra Mahato is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.