2016-11-18 172 views
0

我有一个带特殊字符的ID。我需要使用JQUERY获取此输入的值。带特殊字符的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> 

我尝试这个,但我没有在警报中的响应。 帮助!请!

+1

您想要的ID? – Mahi

+0

我想要包含在输入 – David

+0

什么是str值那么值? – Mahi

回答

0
function jq(str) { 
    var element = document.getElementById("adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG"); 

    var value = $(element).val(); 
    alert(value); 
} 
1

通常情况下,您可以在选择器\\中使用jQuery的转义序列来转义特殊字符。但是,在这种情况下,由于它在元素中指定的id无效,因为它包含空格,所以这不起作用。

由于,你将不得不在jQuery的使用属性选择检索:

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">

一个更好的解决办法是解决您的元素id他们之前输出到页面以删除空格和特殊字符。

0

从小提琴获得答案here 我写的都是javascript & jquery。在ID中每个特殊字符之前都有一个选项//,但这对我没有任何作用。另一方面,你可以得到答案。检查&让我知道。

$("#clickID").on('click', function(){ 
    getVal = $(document.getElementById('adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG')).val(); 
    console.log(getVal); 
    alert(getVal); 
});