0

我是 javascript 和 jquery 的新手,在编写脚本时偶然发现了一个问题。

我的脚本是由 php 代码生成的,该代码从文件中读取行,对其进行解析并使用数组将它们打印出来。然后,Node.js 验证表单输入,并向用户输出有用的消息。

我已经成功地$('#id').blur在各种元素上使用了 js 和 jquery。但是,当我尝试在索引元素上执行此操作时,遇到了这个问题。

代码:

$('#NS_IN[0]').blur(function() {
        alert("Called");
        CopyNStoMain();     
    });

我注意到这个函数永远不会被执行。我尝试查看控制台中的变量。

typeof($('#NS_IN[0]'))是一个对象;但typeof($('#NS_IN[0]').val())未定义。

在我的 html 代码中,我有:

<input type="text" id="NS_IN[0]" value="" name="NS[0]">

我究竟做错了什么?如果定义了 idNS_IN[0]$(NS_IN[0])引用了一个对象,那么不应该$(NS_IN[0]).val()存在并保存输入框的值吗?

4

4 回答 4

3

您需要转义 jquery 选择器字符。

$('#NS_IN\\[0\\]').blur(function() {
        alert("Called");
        CopyNStoMain();     
    });
于 2013-07-24T12:58:28.670 回答
0

您在这里已经有了答案……我不知道如何将您的问题标记为重复。

//get
bla = $('#txt_name').val();
//set
$('#txt_name').val('bla');
于 2013-07-24T12:53:18.220 回答
0

在 jQuery 中,[]工作方式不同,例如:

div[id^="player_"]

因此,解决方案之一是选择 ID 以某项开头的项目:

$("input[id^=NS_IN]").val();
于 2013-07-24T12:58:05.460 回答
0

当您使用不同的选择器时,它会起作用,因为 jquery[]本身将 用作属性选择器。所以使用例如(见小提琴:http: //jsfiddle.net/rePQm/1/):

$('input').click(function() { alert("clicked" + this.id); });

一个元素选择器,它选择所有输入元素并将点击处理程序添加到所有这些元素。有关更多可能的选择器,请参阅 http://api.jquery.com/category/selectors/上 jquery 文档的选择器部分。

于 2013-07-24T13:02:49.577 回答