排序数组超链接

时间:2015-10-14 14:44:04

标签: javascript arrays sorting sharepoint spservices

我正在尝试根据标题对此代码进行排序,但是使用超链接显示标题。到目前为止,代码正确排序,但超链接不是由正确的标题显示。它似乎是按标题按字母顺序排列列表链接,然后子标题按标题顺序链接。

我想:
第一个子网站(www.test.com/firstsubsite)
Google(www.google.com)//< -In list
最后一个子网站(www.test.com/lastSubsite)
雅虎(www.yahoo.com)//< - 列表中

目前我正在接受:
第一个子网站(www.google.com)//< -In list
谷歌(www.yahoo.com)//< - 列表中 最后一个子网站(www.test.com/firstsubsite)
雅虎(www.test.com/lastSubsite)

function GetItems() {
    var names = [];
    var link = [];
    $().SPServices({
        operation: "GetListItems",
        async: true,
        listName: "GatheredSites",
        CAMLViewFields: "<ViewFields><FieldRef Name='Title' /><FieldRef Name='Link_x0020_Url' /></ViewFields>",
        completefunc: function(xData, Status) {
            $(xData.responseXML).SPFilterNode("z:row").each(function() {
                var url = $(this).attr("ows_Link_x0020_Url").split(",")[0];
                var name = ($(this).attr("ows_Title"));
                names.push(name);
                link.push(url);
            });
            $().SPServices({
                operation: "GetWebCollection",
                webURL: "*url*",
                async: true,
                completefunc: function(xData, Status) {
                    $(xData.responseXML).find("Webs > Web").each(function() {
                        var $node = $(this);
                        names.push($node.attr("Title"));
                        link.push($node.attr("Url"));
                    });
                    names.sort();
                    var output = $("#divDisplay");
                    for (var i = 0, len = names.length; i < len; i++) {
                        output.append("<li><a href='" + link[i] + "'>" + names[i] + "</li>");
                    }
                }
            });
        }
    });
}

1 个答案:

答案 0 :(得分:2)

links数组进行排序后,您无法匹配$(xData.responseXML).find("Webs > Web").each(function () { var $node = $(this); // single object to store all needed properties from xml var item = { name: $node.attr("Title"), link: $node.attr("Url") } // push object to array names.push(item); // link.push($node.attr("Url")); - remove links array, no longer needed }); // sort array by name property names.sort(function (a, b) { return a.name > b.name }); var output = $("#divDisplay"); for (var i = 0, len = names.length; i < len; i++) { // note properties used for link and name output.append("<li><a href='" + names[i].link + "'>" + names[i].name + "</li>"); } 数组中的相应索引。

您可以创建一个在xml的每次迭代中同时具有名称和链接的对象,并将该对象推送到一个数组中。

然后按名称属性

对单个对象数组进行排序
$url = 'http://whatismyip.org';

$client = new Client($url, array(
    'version'        => 'v1.1',
    'request.options' => array(
        'auth'    => array('d80fe9ebasab73d21a4', '', 'Basic'),
        'proxy'   => 'tcp://@x.x.x.x:8010'
    )
));


$crawler = $client->request('GET', $url);

$status = $client->getResponse()->getStatus();

echo $status; // 407