Coder Social home page Coder Social logo

Comments (4)

shuerguo999 avatar shuerguo999 commented on September 7, 2024 1

1.item.node是没有attr方法的,item有attr方法
2.item.match[1][0]包含两个属性,value和node,value只读,node是具体的节点,可以进行修改,节点结构可以断点查看。因此操作item.match[1][0].node就ok了:
https://play.gogocode.io/#code/N4IglgdgDgrgLgYQPYBMCmIBcIDGSIDOcABOgTgDJhECMxAvMQNrAA6Exxk6AHpsTQA07ThACGAWzT8A5OKk0ZwjqTTlZgM21A+K5L2AX0HE2K7mj7EATMtGTpxObYu6VZHLMCapoAg9GfsPHOpuYAzNbE8nYOUkHOnK6ygBXK3voAugDcIIIgAO5IAE4A1sjoWCAAZjAQOHBg+MRwuWKEpXkSABSlYAA2aACSEM2GYlBghkhQ1fgEAJRGIsR4hCQAJAzEQ2AAdADmSDt46HMLRMQESDC5OGirHd19zRun55dzAPQvxIAU6oCb8YAziYAr8YA9tUABvJaQAIRoAQt0Ax3KAQA9DpMSEgAEYAK1W-ns2hksiIMHQEDgMXsXix9jgaDEOAAFmhcoSZIkSTI8Eh8jSfBA9HNcmg4OcOEtWo8LmgpnMNh0IChWgADYBhWz8JYAfSWQlU6mIyqWFj00tFKg25KprTAZIkDAAfLMVJw3lwzRsIKg0Kw4K7XXbAKDKgGoVPCdPKAPR1AOQG4MAn9qAQxi5rb3qa0BINhIxHAqe64Ha-XlwYAeBXYUfm8PlUgAamJOjAroxY-HE8nKUwaMkmAAGZIbABupfLqTzRxIrhLZYr9rjCaTVKYFkbLfbnbQ3Zt+cWa2OlYdTvQ884AQdNfHDebrfXaBng9WSORTH7s+Scz0+s4G1ySCQcFa9+I2zQEBpSbQb-07AZOA0DwBQjRbCUcAAJ5QGoOC5GA4xAZSYgEAACtycDVDSWD1OWmR4BIUBiNyADy8CwHAuG5OWehAA

from gogocode.

daisybaicai avatar daisybaicai commented on September 7, 2024 1

非常感谢!

from gogocode.

daisybaicai avatar daisybaicai commented on September 7, 2024
const $ = require('gogocode');

const obj = {
  '学生': 'student',
  '教师': 'teacher',
  '厨师': 'cooker'
}

const res = $(`
const descList1 = [{
  index: 1,
  name: 'name1',
  desc: '学生',
}, {
  index: 2,
  name: 'name2',
  desc: '教师'
}, {
  index: 3,
  name: 'name3',
  desc: '厨师'
}];
  `)
  .find(`{ name: $_$1, desc: $_$2}`)
  .each(item => {
    // item.node			// 包含color属性的对象
    // item.match		// color的值

    const nameValue = item.match[1][0].value;
    const descValue = item.match[2][0].value;
    const ast = item.node;
    console.log('name', nameValue,'->',obj[descValue]);
   // TODO: 这块代码,显示错误拿不到attr属性
    ast.attr("name", obj[descValue])
  })
  .root()
  .generate()

console.log('res', res);
    ast.attr("name", obj[descValue])
        ^

TypeError: ast.attr is not a function

我想要直接修改这个ast的name属性,该怎么弄?

from gogocode.

eyis avatar eyis commented on September 7, 2024

AST对象才有attr方法,例如demo里的item.attr('xxx'),它的node是没有attr的
另外这种对象操作直接用js操作更方便些

from gogocode.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.