我一直在使用 .getAttribute 并且今天发现了 .dataset,所以我想知道有什么区别以及应该何时使用它们。
所以这是一个例子。假设我们有一个段落:
<p class="test" data-something="this is a test">some text</p>
Run Code Online (Sandbox Code Playgroud)
如果我们使用 .getAttribute
let testText = document.querySelector('.test');
let testGetAttribute = testText.getAttribute('data-something');
console.log(testGetAttribute);
Run Code Online (Sandbox Code Playgroud)
我们得到“这是一个测试”的输出。
如果我们使用 .dataset
let testText = document.querySelector('.test');
let testDataset = testText.dataset.something;
console.log(testDataset);
Run Code Online (Sandbox Code Playgroud)
我们也得到“这是一个测试”。
那么,这两种方法有区别吗?使用一个比另一个有什么好处吗?
谢谢!
我正在使用onCallFirebase云功能来检查Firestore集合中是否存在文档。如果该文档存在,那么我想继续(如果它仍然不存在),而不是我想要创建它。
我已经尝试了许多不同的方法,但是总是遇到错误,所以现在我要逐步进行操作,并简单地获取我知道存在于集合中的文件的内容。该集合称为“ timeline_state”,文档称为“ 888”
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.afterLogin = functions.https.onCall((data, context) => {
console.log("afterLogin STARTING");
const getDocument = admin.firestore().collection('timeline_state').doc('888').get();
return getDocument.then(doc => {
console.log(doc);
return doc
}).catch(error => {
console.log(error)
return error;
})
})
Run Code Online (Sandbox Code Playgroud)
当我从代码中调用它时,我得到一个空data对象,并且在Firebase函数日志中,我看到该函数正在运行,但出现错误:
/user_code/node_modules/firebase-admin/node_modules/gaxios/build/src/index.js:28
async function request(opts) {
^^^^^^^^
SyntaxError: Unexpected token function
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at …Run Code Online (Sandbox Code Playgroud)