带有Jquery特殊字符的ID

时间:2016-11-18 09:19:40

标签: javascript jquery html character

我有一个带有特殊字符的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>

我尝试了这个,但我没有在警报中有回应。 救命!请!

3 个答案:

答案 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);
});