Используя jQuery, как я изменяю значение HTML элементов? (отделение)

Таким образом, я наконец нашел лучшее решение (чем моя предыдущая попытка, которая включает в себя закачку узла 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 }
    });
  });
};

Результат:

graphiql

Надеюсь, это поможет! [+1121]

12
задан Paolo Bergantino 17 March 2009 в 01:57
поделиться

6 ответов

$("#di").html('My New Text');

Проверьте документацию jQuery.

Если бы Вы хотели увеличить число, то Вы сделали бы

var theint = parseInt($("#di").html(),10)
theint++;
$("#di").html(theint);

P.S. Не уверенный, если это была опечатка или нет, но необходимо включать # в Вашем селекторе, чтобы позволить jQuery знать Вы ищете элемент с идентификатором di. Возможно, если Вы произойдете из прототипа, то Вы не ожидаете это, просто сообщив.

37
ответ дан 2 December 2019 в 03:12
поделиться

Если Вы не встраиваете HTML как <b>blah</b> Я предложил бы использовать $("#di").text() поскольку это автоматически выйдет из вещей как <> и и, тогда как .html() не будет.

4
ответ дан 2 December 2019 в 03:12
поделиться

Это было бы, изменил внутренний текст Вашего элемента HTML.

$('#d1').text(parseInt(requestResponse)++);
5
ответ дан 2 December 2019 в 03:12
поделиться
$('#d1').html("Html here");
1
ответ дан 2 December 2019 в 03:12
поделиться
jQuery('#d1').html("Hello World");
0
ответ дан 2 December 2019 в 03:12
поделиться

Используйте функцию text :

$("#d1").text($("#d1").text() + 1);
2
ответ дан 2 December 2019 в 03:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: