我需要写一个这样的函数:
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
vti_lastheight:IW|250 vti_lastwidth:IW|620
vti_description:SW|Lorem ipsum dolor sit volutpat.' />
更新:我发现有人编写了一个函数来从vti_description中获取描述值。有人可以向我解释这个函数如何能够提取文本“lorem ipsum”部分的描述portio以及如何利用它来提取最后一个高度值?请?
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;
}
答案 0 :(得分: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/
通过微调,您可以将此功能用于任何属性。
答案 1 :(得分:0)
getWidth
是一个功能。你不需要一个简单的功能:
var width=$(this).attr("ows_MetaInfo");
ows_ImageSize
是此xml行的attr。所以上面的调用应该有效,它会返回ows_ImageSize
中设置的任何东西,在这种情况下是620.所以我先测试它,确保它返回一个数字:
console.info(width);
如果是,那么你就会知道这部分是有效的,你可以解决让getWidth(meta){}
工作的问题。
getWidth(width);