-1

ここでの作業デモ:http://jsfiddle.net/8Q4Lf/3/

私はjsoninputで配列を取得し、この関数を使用して非表示に格納しています。

$.post("http://"+ document.domain + baseUrl + "/tickets/getCategoryDepartmentRelation/",
    function(dat){
        $('#departmentsByCategory_array').val(JSON.stringify(dat));         
});

呼び出しは次の値を返します。

{
    "Investigation Request": [
        "Client server",
        "Interface",
        "Engine"
    ],
    "Configure Planning": [
        "Interface",
        "Engine"
    ],
    "Bug Report": [
        "Client server",
        "Interface",
        "Engine",
        "Database"
    ],
    "Development Request": [
        "Interface",
        "Dev Management",
        "Database",
        "Client server",
        "Engine"
    ],
    "Suggestion Box": [
        "Dev Management"
    ],
    "Post Site Feedback": [
        "Web"
    ]
}

jsonこの配列の表現は次のとおりです。

Array
(
    [Investigation Request] => Array
        (
            [0] => Client server
            [1] => Interface
            [2] => Engine
        )

    [Configure Planning] => Array
        (
            [0] => Interface
            [1] => Engine
        )

    [Bug Report] => Array
        (
            [0] => Client server
            [1] => Interface
            [2] => Engine
            [3] => Database
        )

    [Development Request] => Array
        (
            [0] => Interface
            [1] => Dev Management
            [2] => Database
            [3] => Client server
            [4] => Engine
        )

    [Suggestion Box] => Array
        (
            [0] => Dev Management
        )

    [Post Site Feedback] => Array
        (
            [0] => Web
        )

)

これによりinput、次のデータが入力されます。

<input type="hidden" name="demo" value="{&quot;Investigation Request&quot;:[&quot;Client server&quot;,&quot;Interface&quot;,&quot;Engine&quot;],&quot;Configure Planning&quot;:[&quot;Interface&quot;,&quot;Engine&quot;],&quot; Bug Report&quot;:[&quot;Client server&quot;,&quot;Interface&quot;,&quot;Engine&quot;,&quot;Database&quot;],&quot; Development Request&quot;:[&quot;Interface&quot;,&quot;Dev Management&quot;,&quot;Database&quot;,&quot;Client server&quot;,&quot;Engine&quot;],&quot;Suggestion Box&quot;:[&quot;Dev Management&quot;],&quot;Ticket Site Feedback&quot;:[&quot;Web&quot;]}" id="departmentsByCategory_array">

私はこれで完全な配列を得ることができます:

$('#departmentsByCategory_array').val();

しかし、 「計画の構成」など、1つの要素の値のみを取得しようとしています。

JavascriptまたはjQuery内でこれらの値を操作するにはどうすればよいですか?(ループ、比較...)

4

2 に答える 2

2

問題を見つけました。json表現で余分なスペースを返しているので" Bug Report"、アクセスしたいのであって、ではありません "Bug Report"

alert(data[' Bug Report']);

ここで変更されたフィドル:http://jsfiddle.net/8Q4Lf/2/

キーについても同じことが言えます" Development Request"

alert(data[' Development Request']);
于 2012-12-05T11:35:57.197 に答える
1
var data = JSON.parse($('#departmentsByCategory_array').val());
data['Configure Planning']; //returns Configure Planning array
于 2012-12-05T10:58:32.643 に答える