我有一个带有特殊字符的ID。我需要使用JQUERY获取此输入的值。
<input style="text-align:center; width:50px;" type="text" onKeyPress="jq(this.id);" value="5" id="adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG">
<script>
function jq(str) {
var id = str.replace(/[%#;&,\.\+\@*~':"!\^\$\[\]\(\)=>|\/\\]/g, '\\\\$&');
var value = $("#"+id).val();
alert(value);
}
</script>
我尝试了这个,但我没有在警报中有回应。 救命!请!
答案 0 :(得分:1)
通常,您可以在选择器grep
中使用jQuery的转义序列来转义特殊字符。但是在这种情况下这不起作用,因为您在元素中指定的\\
无效,因为它包含空格。
由于你必须在jQuery中使用属性选择器来检索它:
id
var $el = $('[id="adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG"]');
console.log($el.val());
更好的解决方案是在将元素输出到页面之前修复元素的<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input style="text-align: center; width: 50px;" type="text" onKeyPress="jq(this.id);" value="5" id="adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG">
以删除空格和特殊字符。
答案 1 :(得分:0)
function jq(str) {
var element = document.getElementById("adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG");
var value = $(element).val();
alert(value);
}
答案 2 :(得分:0)
从小提琴here获得答案 我用javascript和amp; jQuery的。在ID中的每个特殊字符之前都有一个选项//尝试//,但这对我没用。所以在另一方面你可以得到答案。检查&amp;让我知道。
$("#clickID").on('click', function(){
getVal = $(document.getElementById('adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG')).val();
console.log(getVal);
alert(getVal);
});