我正在尝试根据标题对此代码进行排序,但是使用超链接显示标题。到目前为止,代码正确排序,但超链接不是由正确的标题显示。它似乎是按标题按字母顺序排列列表链接,然后子标题按标题顺序链接。
我想:
第一个子网站(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>");
}
}
});
}
});
}
答案 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