【问题标题】:ID with special characters with Jquery带有特殊字符的 ID 与 Jquery
【发布时间】:2016-11-18 09:19:39
【问题描述】:

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

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

【问题讨论】:

  • 你想要的 id ??
  • 我想要输入中包含的值
  • 那么str值是多少?
  • var id = str.replace() .有新id的目标。如果你需要new id 输入值是或`keypress`输入值。
  • id 是的。但是在 jquery 中,如果您使用带有特殊字符的 id,它就不起作用。然后我创建了 jq 方法,在每个特殊字符之前写什么“\\”。

标签: javascript jquery html character


【解决方案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,以删除空格和特殊字符。

【讨论】:

    【解决方案2】:

    从小提琴here中得到答案 我用 javascript 和 jquery 都写过。在 ID 中的每个特殊字符之前都有一个尝试 // 的选项,但这对我不起作用。所以在另一方面,你可以得到答案。检查并告诉我。

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

    【讨论】:

      【解决方案3】:
      function jq(str) {
          var element = document.getElementById("adhocGlobal_#@HELLO DAVID%VSOP1240%6X0.7LFIG");
      
          var value = $(element).val();
          alert(value);
      }   
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-05-25
        • 1970-01-01
        • 2023-03-14
        • 2012-10-06
        • 2018-11-14
        • 2012-09-15
        相关资源
        最近更新 更多