Таким образом, я наконец нашел лучшее решение (чем моя предыдущая попытка, которая включает в себя закачку узла mdx в страницу context
).
У Гэтсби есть недокументированный метод для связи узлов друг с другом:
Да, вы можете использовать createNodeField с еще не документированным синтаксисом ___NODE для создания связей между узлы.
blockquote>Итак, шаги выглядят следующим образом:
- В
createPage
сохранитеid
узла Mdx на узле SitePage.- В
onCreateNode
, если узел -SitePage
, используйтеcreateNodeField
сMdx___NODE
в качестве имени поля и идентификатором узла Mdx в качестве значения.My
gatsby-node.js
:const path = require("path") const { createFilePath } = require("gatsby-source-filesystem") exports.onCreateNode = ({ node, actions, getNode }) => { const { createNodeField } = actions if (node.internal.type === "SitePage" && node.context && node.context.id) { createNodeField({ name: "Mdx___NODE", value: node.context.id, node, }) } if (node.internal.type === "Mdx") { const value = createFilePath({ node, getNode }) createNodeField({ // 1) this is the name of the field you are adding, name: "slug", // 2) this node refers to each individual MDX node, value: `/blog${value}` }) } } exports.createPages = async ({ graphql, actions }) => { const { createPage } = actions; const { data, errors } = await graphql(` { allMdx { edges { node { id fields { slug } } } } } `) if (errors) throw errors data.allMdx.edges.forEach(({ node }) => { createPage({ path: node.fields.slug, component: path.resolve(`./src/components/posts-page-layout.js`), context: { id: node.id } }); }); };
Результат:
Надеюсь, это поможет! [+1121]
$("#di").html('My New Text');
Проверьте документацию jQuery.
Если бы Вы хотели увеличить число, то Вы сделали бы
var theint = parseInt($("#di").html(),10)
theint++;
$("#di").html(theint);
P.S. Не уверенный, если это была опечатка или нет, но необходимо включать #
в Вашем селекторе, чтобы позволить jQuery знать Вы ищете элемент с идентификатором di
. Возможно, если Вы произойдете из прототипа, то Вы не ожидаете это, просто сообщив.
Если Вы не встраиваете HTML как <b>blah</b>
Я предложил бы использовать $("#di").text()
поскольку это автоматически выйдет из вещей как <> и и, тогда как .html()
не будет.
Это было бы, изменил внутренний текст Вашего элемента HTML.
$('#d1').text(parseInt(requestResponse)++);
Используйте функцию text :
$("#d1").text($("#d1").text() + 1);