按名称的jQuery对象值

时间:2016-02-19 13:26:00

标签: jquery

我现在已经使用了Jquery一段时间,但今天遇到了一个问题,我已经尝试了各种解决方法。

我正在使用名称搜索一些html元素。例如,我使用var form = $(formId);从DOM获取一个表单,formId看起来像'#Guid-document-form',这样就可以了,我得到了表单对象。

然后我使用下面的代码片段

在表单对象中查询textarea的值
var docCommentQuery = 'textarea[name="Files\\[' + arrayId + '\\]\\.Comment"]';

arrayId在int中,传递给执行查询的函数,因此必须按上述方式构建选择器。

然后我使用var docCommentVal = $(form).find(docCommentQuery).val();尝试获取textarea的值,但返回的值始终是未定义的。我尝试了各种各样的事情,但没有快乐。

我已经阅读了jquery文档和WC3标准,并且都说要逃避元字符,这就是我上面所做的。

有没有人有任何想法?

由于

2 个答案:

答案 0 :(得分:0)

作为一般规则,您要转义需要被视为文字字符的元字符,除非它们是双重内容中包含的属性选择器中值的一部分引号

由于第二组[].之后是name属性值的一部分,因此您无需转义它们:

textarea[name="Files[' + arrayId + '].Comment"]

但是,如果您想比较名为name [](而不仅仅是名称)的属性的值,则需要转义[]对属性名称的一部分(但不是属性值的一部分):

textarea[name\\[\\]="Files[' + arrayId + '].Comment"]

答案 1 :(得分:0)

var files="Files[' + arrayId + ']";
var docCommentQuery = 'textarea[name="+files+.Comment"]';

你可以尝试一次上面的代码。希望它可以帮助