首页 > 解决方案 > 这种类型的 Id 的 Jquery 选择器?

问题描述

我有这样的身份证

<input type="text" id=MyField[1d81c42a-4c8f-45a8-a219-0ff29d328103].Name />

我需要这样做,否则一些 Asp.net mvc 代码在我提交时将无法正常工作,它会尝试将其绑定到模型。

我现在正在尝试对其进行 jquery 选择器,但从未找到该元素

$('#MyField[1d81c42a-4c8f-45a8-a219-0ff29d328103].Name)

我认为括号搞砸了。

标签: jquery

解决方案


您的代码不起作用的原因是您的 HTML 输入元素 id 没有像这样双引号您的 HTML 输入

<input type="text" id=MyField[1d81c42a-4c8f-45a8-a219-0ff29d328103].Name />但一定是这样的<input type="text" id="MyField[1d81c42a-4c8f-45a8-a219-0ff29d328103].Name" />

在 jquery 选择器中,您忘记添加结束引号$('#MyField[1d81c42a-4c8f-45a8-a219-0ff29d328103].Name')

jquery id 必须始终是字符串,因此当您使用特殊字符时,某些字符必须使用\\jQuery Id 文档 中的反斜杠进行转义,这里是链接

这是一个工作演示,希望对您有所帮助。

    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
      $("button").click(function(){
       var value = $('#MyField\\[1d81c42a-4c8f-45a8-a219-0ff29d328103\\]\\.Name').val();
       alert(value);
      });
    });
    </script>
    </head>
    <body>
    <input type="text" id="MyField[1d81c42a-4c8f-45a8-a219-0ff29d328103].Name" />
    <button>Get Value</button>
    </body>
    </html>
    


推荐阅读