-1

これを考慮したhtmlコードがあります(例):

$(window).ready(function () {
    video.search.apply_results({
        "scope":"global",
        "global":{
            "list":[{
                "id":19366,
                "user_id":null,
                "title":"\u041c\u043e\u0440\u0441\u043a\u0430\u044f \u0418\u0441\u0442\u043e\u0440\u0438\u044f: \u0422\u043e, \u0447\u0442\u043e \u0432 \u0442\u0432\u043e\u0438\u0445 \u0441\u0438\u043b\u0430\u0445 \/ Umi Monogatari: Anata ga Ite [hl]Kureta[\/hl] Koto (RUS) \u0421\u0435\u0440\u0438\u044f \u21161",
                "thumb_url":"http:\/\/cs1.premedias.ru\/videos\/1\/9\/3\/6\/6\/6982b758bb030f4075d40696433158ef_s.jpg",
                "duration":1453,
                "description":"\u0414\u0432\u0435 \u0441\u0435\u0441\u0442\u0440\u044b-\u0440\u0443\u0441\u0430\u043b\u043a\u0438 \u041c\u0430\u0440\u0438\u043d \u0438 \u0423\u0440\u0438\u043d \u0436\u0438\u0432\u0443\u0442 \u0432 \u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0438\u0445 \u0433\u043b\u0443\u0431\u0438\u043d\u0430\u0445, \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u0441 \u0440\u043e\u0434\u0438\u0447\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 \u0440\u044b\u0431\u0430\u043c\u0438, \u0447...",
                "is_hd":true
            },{
                "id":19367,
                "user_id":null,
                "title":"\u041c\u043e\u0440\u0441\u043a\u0430\u044f \u0418\u0441\u0442\u043e\u0440\u0438\u044f: \u0422\u043e, \u0447\u0442\u043e \u0432 \u0442\u0432\u043e\u0438\u0445 \u0441\u0438\u043b\u0430\u0445 \/ Umi Monogatari: Anata ga Ite [hl]Kureta[\/hl] Koto (RUS) \u0421\u0435\u0440\u0438\u044f \u21162",
                "thumb_url":"http:\/\/cs1.premedias.ru\/videos\/1\/9\/3\/6\/7\/d2dc60de1ec00f944e74b2aa1f6db942_s.jpg",
                "duration":1454,
                "description":"\u0414\u0432\u0435 \u0441\u0435\u0441\u0442\u0440\u044b-\u0440\u0443\u0441\u0430\u043b\u043a\u0438 \u041c\u0430\u0440\u0438\u043d \u0438 \u0423\u0440\u0438\u043d \u0436\u0438\u0432\u0443\u0442 \u0432 \u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0438\u0445 \u0433\u043b\u0443\u0431\u0438\u043d\u0430\u0445, \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u0441 \u0440\u043e\u0434\u0438\u0447\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 \u0440\u044b\u0431\u0430\u043c\u0438, \u0447...",
                "is_hd":true
            }],
            "count":28
        }
    });
});

最初の「id」の後に続く番号をエコーする必要があります。この例では 19366 です。javascript を使用してそれを行うにはどうすればよいですか?

4

4 に答える 4

1

配列射影法 .map() を使用できます

var ids = json.global.list.map(function(i){
  return i.id;
});

console.log(ids);//[19366, 19367]
于 2012-12-04T08:36:12.257 に答える
1

apply_results関数を書いていると仮定すると、次のようになります。

function apply_results(opts) {
    // ...
    // alerts first id
    alert(opts.global.list[0].id);
}

上記の html をテキストとして取得し、そこから ID を取得したい場合は、次の正規表現を使用します。

// assuming text holds all the html OP pasted following alerts first id found
alert(text.match(/\"id\":(\d+)/)[1]);
于 2012-12-04T08:31:22.097 に答える
1

(それ以上の)解析は必要ありません。ソースが何であれ、引用されたコードに基づいてそのデータを取得したら、それはすでにオブジェクトグラフに逆シリアル化 (解析) されています。そのオブジェクト グラフのglobal.list[0].id. 例えば:

$(window).ready(function () {
    var results = {
        "scope": "global",
        "global": {
            "list": [{
                "id": 19366,
                "user_id": null,
                "title": "\u041c\u043e\u0440\u0441\u043a\u0430\u044f \u0418\u0441\u0442\u043e\u0440\u0438\u044f: \u0422\u043e, \u0447\u0442\u043e \u0432 \u0442\u0432\u043e\u0438\u0445 \u0441\u0438\u043b\u0430\u0445 \/ Umi Monogatari: Anata ga Ite [hl]Kureta[\/hl] Koto (RUS) \u0421\u0435\u0440\u0438\u044f \u21161",
                "thumb_url": "http:\/\/cs1.premedias.ru\/videos\/1\/9\/3\/6\/6\/6982b758bb030f4075d40696433158ef_s.jpg",
                "duration": 1453,
                "description": "\u0414\u0432\u0435 \u0441\u0435\u0441\u0442\u0440\u044b-\u0440\u0443\u0441\u0430\u043b\u043a\u0438 \u041c\u0430\u0440\u0438\u043d \u0438 \u0423\u0440\u0438\u043d \u0436\u0438\u0432\u0443\u0442 \u0432 \u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0438\u0445 \u0433\u043b\u0443\u0431\u0438\u043d\u0430\u0445, \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u0441 \u0440\u043e\u0434\u0438\u0447\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 \u0440\u044b\u0431\u0430\u043c\u0438, \u0447...",
                "is_hd": true
            }, {
                "id": 19367,
                "user_id": null,
                "title": "\u041c\u043e\u0440\u0441\u043a\u0430\u044f \u0418\u0441\u0442\u043e\u0440\u0438\u044f: \u0422\u043e, \u0447\u0442\u043e \u0432 \u0442\u0432\u043e\u0438\u0445 \u0441\u0438\u043b\u0430\u0445 \/ Umi Monogatari: Anata ga Ite [hl]Kureta[\/hl] Koto (RUS) \u0421\u0435\u0440\u0438\u044f \u21162",
                "thumb_url": "http:\/\/cs1.premedias.ru\/videos\/1\/9\/3\/6\/7\/d2dc60de1ec00f944e74b2aa1f6db942_s.jpg",
                "duration": 1454,
                "description": "\u0414\u0432\u0435 \u0441\u0435\u0441\u0442\u0440\u044b-\u0440\u0443\u0441\u0430\u043b\u043a\u0438 \u041c\u0430\u0440\u0438\u043d \u0438 \u0423\u0440\u0438\u043d \u0436\u0438\u0432\u0443\u0442 \u0432 \u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0438\u0445 \u0433\u043b\u0443\u0431\u0438\u043d\u0430\u0445, \u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u0441 \u0440\u043e\u0434\u0438\u0447\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441 \u0440\u044b\u0431\u0430\u043c\u0438, \u0447...",
                "is_hd": true
            }],
            "count": 28
        }
    };
    video.search.apply_results(results);
    console.log(results.global.list[0].id);
});

上記で行ったのは、渡した大量のオブジェクト リテラルをapply_results変数 ( results) に移動し、その変数を で使用してapply_resultsから、最初のid値を表示すること ( results.global.list[0].id) だけでした。そして、コードをフォーマットしました。:-)

于 2012-12-04T08:31:35.440 に答える
0

あなたが正確に何を望んでいるのかわかりません!ちなみに、以下のような状況を想定しています。

<video id="id19367"/>
<video id="19367"/>​

ただし、ID が見つかったら、replace() JavaScript 関数を使用して「ID」を「削除」できます。

$(document).ready(function(){
  var ids = new Array();
  $('video').each(function() {
     var id = $(this).attr('id');  
      if(id[0]=='i') {
          var toRemove = 'id';
          id = id.replace(toRemove,'');
      }
      ids.push(id);    
      console.log(id);          
  });
});​
于 2012-12-04T08:39:03.497 に答える