我在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"]');