3

私はこのような関数を書く必要があります:

var width=getWidth( $(this).attr("ows_MetaInfo"));

ここで、$thisはxml行を指しています。

関数ではgetWidth(meta){}、テキストvti_lastheightを見つけて、分割などを行い、高さの数値である250を取得する必要があります。javascriptまたはjqueryでこれを行うにはどうすればよいですか?

<z:row ows_Title='We are together!' ows_ImageSize='620' 
            ows_MetaInfo='16;#vti_parserversion:SR|14.0.0.6120&#13;&#10;                
            vti_lastheight:IW|250&#13;&#10;vti_lastwidth:IW|620&#13;&#10;
            vti_description:SW|Lorem ipsum dolor sit volutpat.' />

更新:誰かがvti_descriptionからdescription値を取得する関数を作成したことがわかりました。この関数がテキスト「loremipsum」部分の説明部分を抽出する方法と、それを使用してlastheight値を抽出する方法を誰かに説明してもらえますか?

function getDescription(metaInfo)
    {
        var description="";
        if(metaInfo!=null)
        {
            metaParts=metaInfo.split("\n");
            if(metaParts!=null && metaParts.length>0)
            {
                var i=0;
                do
                {
                    if(metaParts[i].indexOf("vti_description")>-1)
                    {
                        var descParts=metaParts[i].split("|");
                        if(descParts!=null && descParts.length>1)
                        {
                            description=descParts[1];
                        }
                    }
                    i++;
                } while (i<metaParts.length && description=="" );
            }
        }
        return description;
    }
4

2 に答える 2

1

正規表現を使うべきだと思います。

function getWidth(str) {
    str = str.replace(/(\r\n|\n|\r)/gm, "");
    str = str.match(/vti_lastwidth:(.*?(?=vti))/);
    str = parseInt(str[1].split('|')[1]);
    console.log(str);
    return str;;
}

あなたのデータが常にこの形成を持っていると仮定します。

デモ:http://jsfiddle.net/pavloschris/3gdd5/

微調整を加えるだけで、この関数を任意の属性に使用できます。

于 2013-03-20T16:52:49.873 に答える
0

getWidth関数です。このための関数は必要ありません。

 var width=$(this).attr("ows_MetaInfo");

ows_ImageSizeこのxml行の属性です。したがって、上記の呼び出しは機能するはずでありows_ImageSize、この場合に設定されている620が返されます。したがって、最初に、これが数値を返していることを確認してテストします。

console.info(width);

そうであれば、その部分が機能していることがわかり、getWidth(meta){}作業に取り掛かることができます。

 getWidth(width);
于 2013-03-20T16:33:45.580 に答える