小编Wol*_*War的帖子

getElementsByClassName vs querySelectorAll

如果我使用

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吗?

javascript

10
推荐指数
2
解决办法
5151
查看次数

input type="file" - 接受没有任何扩展名的文件

我如何接受没有任何扩展名的文件?
我需要接受 我尝试过的 .json无扩展名文件

<input type="file" accept=".json, . "/>  
Run Code Online (Sandbox Code Playgroud)

以及一些带有点和空白的变体,但它们都不起作用

html javascript

6
推荐指数
1
解决办法
1758
查看次数

无法将 blob 保存到 indexedDB

我在 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)

javascript blob google-chrome-extension indexeddb

5
推荐指数
2
解决办法
3499
查看次数

CSS:不是选择器 - 从悬停中排除多个类

我在元素上组合了三个类

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中的选择器连接香肠中有一个错字

我会留下问题,也许有人发现它很有用

css

5
推荐指数
1
解决办法
4421
查看次数