如果我使用
var temp = document.querySelectorAll(".class");
for (var i=0, max=temp.length; i<max; i++) {
temp[i].className = "new_class";
}
Run Code Online (Sandbox Code Playgroud)
一切正常.所有节点都会更改其类.但是,有了gEBCN:
var temp = document.getElementsByClassName("class");
for (var i=0, max=temp.length; i<max; i++) {
temp[i].className = "new_class";
}
Run Code Online (Sandbox Code Playgroud)
我收到错误.代码在某个时刻跳出循环,而没有用msg"无法设置className of null"完成作业.
我知道这是静态vs live nodelist问题(我认为),但由于gEBCN要快得多,我需要遍历庞大的节点列表(树),我真的想使用getElementsByClassName.
我有什么办法可以坚持使用gEBCN而不是被迫使用querySelectorAll吗?
我如何接受没有任何扩展名的文件?
我需要接受
我尝试过的 .json和无扩展名文件
<input type="file" accept=".json, . "/>
Run Code Online (Sandbox Code Playgroud)
以及一些带有点和空白的变体,但它们都不起作用
我在 IndexedDB 中保存 blob 时遇到问题,并且只能使用 blob。
如果我保存其他内容(例如图像为 base64),则一切正常。
但是对于 blob,只保存了空对象属性。
控制台截图:

代码:
//prepared blob...
var openRequest = indexedDB.open("testDB",1);
openRequest.onupgradeneeded = function(e) {
var thisDB = e.target.result;
if(!thisDB.objectStoreNames.contains("stash")) {
thisDB.createObjectStore("stash");
}
}
openRequest.onsuccess = function(e) {
db = e.target.result;
var transaction = db.transaction(["stash"],"readwrite");
var store = transaction.objectStore("stash");
var tID = Date.now();
var obj = {
bl:blob,
created:tID
}
console.log(obj);
//add it
var request = store.add(obj, tID);
request.onerror = function(e) {
console.log("Error",e.target.error.name);
}
request.onsuccess = function(e) {
console.log("success");
}
}
openRequest.onerror = …Run Code Online (Sandbox Code Playgroud) 我在元素上组合了三个类
base, base_green, base_blue
Run Code Online (Sandbox Code Playgroud)
我用这个只为base班级添加悬停效果(没有base_green)
.base:not(.base_green):hover {
background-color: #E2E2E2;
}
Run Code Online (Sandbox Code Playgroud)
我怎么能用两个班级来实现呢?
意思是,如果元素有,base base_green或者base base_blue不添加悬停效果,
例如.像这样的东西(不起作用)
.base:not(.base_green):not(.base_blue):hover {
background-color: #E2E2E2;
}
Run Code Online (Sandbox Code Playgroud)
编辑:
谢谢大家的答案,我的初步解决方案工作正常
我:not在我的CSS文件/ facepalm中的选择器连接香肠中有一个错字
我会留下问题,也许有人发现它很有用