0

私はオブジェクトを持っていて、それらの名前とプロパティ名を印刷したいと思います。どうやってやるの。それらのプロパティ値にアクセスできます。「first」や「second」のようなオブジェクト名を印刷したいのと同じように、「value」や「text」のようなプロパティは値を印刷したくない

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script type="text/javascript" src="jquery-1.7.2.js"></script>
    <script type="text/javascript">
        $(function (){
            var myDate= {
                'first':{value:'30',text:'i am the one'},
                'second':{value:'50',text:'i am the second'}
            }

            $('a').click(function (){
                var t= $(this).text();
                if(t=="both"){
                    $('.text').text(myDate['first'] + '' + myDate['second'] );
                } else {
                    $('.text').text(myDate[t]);
                }
            });
        });
    </script>
</head>
<body>
    <div class="text"></div>
    <a href="#">first</a>&nbsp;&nbsp;<a href="#">second</a>
    <a href="#">both</a>​
</body>
4

4 に答える 4

2

標準のJSfor..inループを使用できます。jQueryは必要ありませんが、その$.each()メソッドについても説明しています。どちらの方法でも、プロパティ名とそれに対応する値にアクセスできます。$.each()ネストされたオブジェクトがある場合、おそらくfor..inまたはループをネストする必要があります。

出力の形式を明確にすることはできませんが、少なくとも必要な部分を取得する方法を示す簡単な例を次に示します。

var output = "";
$.each(myDate, function(k, val) {
    // k is the property name, val is the property value
    output += k + ": ";
    $.each(val,function(k,val) {
        output += k + ": " + val + "; ";
    });
    output += "\n";
});
// do something with output

outputこれにより、次のような文字列が生成されます。

first: value: 30; text: i am the one; 
second: value: 50; text: i am the second; 

...このデモに示されているように:http://jsfiddle.net/nnnnnn/WvBgD/

于 2012-08-06T06:22:10.580 に答える
1

単純にforループを使用してオブジェクト名を取得できます。

for(var x in myDate){
      console.log(x);
      if(typeof(myDate[x]) == "object") {
         for(var y in myDate[x]){
             console.log(">>"+y);
         }
      }
 }

結果......

first
>>value
>>text
second
>>value
>>text
于 2012-08-06T06:27:44.367 に答える
0

forinループを使用できます。

    for(var x in myDate){
      console.log(myDate[x]['value']);//access value
      console.log(myDate[x]['text']);//access the text
    }
于 2012-08-06T06:17:23.473 に答える
0

作業デモ http://jsfiddle.net/msSwA/ または http://jsfiddle.net/msSwA/1/

良いリンク:JavaScript / jQueryでオブジェクトのプロパティを取得する方法は?

それがニーズに合うことを願っています:)

value = myDate['first'].valueまたtext = myDate['first'].text

コード

$(function() {
    var myDate = {
        'first': {
            value: '30',
            text: 'i am the one'
        },
        'second': {
            value: '50',
            text: 'i am the second'
        }
    }

    $('a').click(function() {
        var t = $(this).text();
        if (t == "both") {
         $('.text').text(myDate['first'].value + ' == ' + myDate['second'].value)
        }
        else {

            $('.text').text(myDate[t].value);

        }
    })



})​
于 2012-08-06T06:20:56.890 に答える