JavaScript 中的巫术操纵 DOM?



我在HTML上有3个HiddenFor Razor字符串,它将值传递给模型C#。

然后我有一个带有三个拖放区的JavaScript(用于拖放的js lib)。此时将有三个"删除事件",这些事件将填充该隐藏值。

为此,我测试了 3 种不同的语法:

document.getElementById().value
document.querySelector().value
$('#Element').value

但我注意到一些奇怪的事情:
对于前两个隐藏的查询选择器和 jQuery 方法工作正常,但是对于第三个,只有document.getElementById可以工作(否则值将作为 null 发送)。 同时,如果我多次使用它,则无法识别document.getElementByID

因此,如果我对其中两个使用 jQuerydocument.getElementById,对最后一个使用 jQuery,这将正常工作。

问题是...为什么?

唯一不同的是第三个字符串里面有","。

jQuery不适用于特殊字符或类似的东西?

我的代码有效,但我只是对那个有缺陷的功能感到好奇。

你最好改用$('#Element').val()

$(*)返回一个jQuery collection,该具有许多methods但没有像value这样的option

document.querySelector$()都接受用于标识目标的 CSS 选择器字符串。在 CSS 中,,分隔选择器。

因此,$('#a,b')将查找 id 为 "a"的元素或b元素,而document.getElementById('a,b')将生成 id 为 "a,b" 的元素。

要在jQuery中模拟这种行为,你需要编写$('*[id="a,b"]');

最新更新