首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从jquery/JS中的String[]获取值

从jquery/JS中的String[]获取值
EN

Stack Overflow用户
提问于 2012-01-18 21:07:44
回答 2查看 93关注 0票数 0

我有一个表单,用户可以存储和编辑他们的技能在不同的语言。我正在使用一个叫做"raty“的插件来让用户对他们的语言技能进行评分。后台使用Spring。我将语言等级存储在一个名为languageRatings的String[]中。

技能的实际设置不是问题,但是当我想让用户编辑他们的语言技能时,我会遇到问题。问题是表单输入的名称是由raty本身提供的库设置的,这意味着当languageRatings填充输入字段时,输入名称“Spring”并不存在。

下面是一个小示例,说明如何初始化raty:

代码语言:javascript
复制
$('#star').raty({
  scoreName: 'languageRatings'
});

<div id="star"></div>

为了解决这个问题,我创建了一个新的隐藏输入:

代码语言:javascript
复制
<form:hidden path="languageRatings" id="hiddenRatings"/>

我的想法是让Spring填充此输入,允许我在raty设置正确名称后从此输入元素中提取值。

隐藏字段由包含评级的数组填充,如下所示:{5,4,2}。我不太擅长使用Jquery :-(我试过这样做,但它打印整个字符串,而不是每个数组元素

代码语言:javascript
复制
$(document).ready(function() {
    var ratings = $('#hiddenRatings').val();
    $.each(ratings, function(index, value) { 
      console.log(index + ': ' + value); 
    });
});

产生

代码语言:javascript
复制
0: {
1: 5
2: ,
3:  
4: 3
5: ,
6:  
7: 2
8: }

如何提取此数组中的值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-18 21:19:19

由于你的值是"{5, 4, 2}",你可以这样做:

代码语言:javascript
复制
var val = $('#hiddenRatings').val(), // "{5, 4, 2}"
    arr = /\{(.*)\}/.exec(val)[1].split(", ");

$.each(arr, function (index, value) {
    console.log(index + ': ' + value);
});

RegEx去掉了花括号,结果被", "拆分,留下一个包含["5", "4", "2"]Array

票数 1
EN

Stack Overflow用户

发布于 2012-01-18 21:15:05

尝试像这样添加elemets : 1,2,3,4

然后,您可以使用以下命令拆分字符串:

代码语言:javascript
复制
var ratings = $('#hiddenRatings').val().split(",");

因此,您可以访问如下字段:

代码语言:javascript
复制
field0 = ratings[0];

代码语言:javascript
复制
alert(ratings[1]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8910621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档