【发布时间】:2014-11-01 10:06:04
【问题描述】:
这个函数效果很好,(这为每个<div class = "menuRayonContent avecLiens" ..> 提供了所有<div class = "menuFamille" ..>)
function getnb1() {
var num1 = document.querySelectorAll(".menuRayonContent.avecLiens .menuFamille");// I get all divs menuFamille each div with class as "menuRayonContent avecLiens"
return Array.prototype.map.call(num1, function (e) {
try {
return (/url\?q=(.*)&sa=U/).exec(e.getAttribute("href"))[1]
} catch (err) {
return e.getAttribute("href");
}
});
}
但是有类只是“menuRayonContent”的div,所以结果为0,我不知道如何找到所有具有或不带“avecLiens”类的div
我会照着做的
function getnb2() {
var num1 = document.querySelectorAll (".menuRayonContent .menuFamille"); // I get all //divs menuFamille each div with class as "menuRayonContent"
return Array.prototype.map.call(num1, function (e) {
try {
return (/url\?q=(.*)&sa=U/).exec(e.getAttribute("href"))[1]
} catch (err) {
return e.getAttribute("href");
}
});
}
这个账号在页面里都是<div class = "menuFamille" ..>。
因为页面是这样的
<div class = "menuRayonContent avecLiens" style = "display: block;">
<div class = "menuFamille" idCat = "1024" typecat = "2">
<div class = "menuFamille" idCat = "1025" typecat = "2">
<div class = "menuFamille" idCat = "1026" typecat = "2">
<div class = "menuFamille" idCat = "290" typecat = "2">
<div class = "menuFamille" idCat = "2595" typecat = "2">
..........
...........
<div class = "menuRayonContent " style = "display: none;">
<div class = "menuFamille" idCat = "4024" typecat = "2">
<div class = "menuFamille" idCat = "1325" typecat = "2">
<div class = "menuFamille" idCat = "1226" typecat = "2">
<div class = "menuFamille" idCat = "2590" typecat = "2">
<div class = "menuFamille" idCat = "1595" typecat = "2">
.............
.............
<div class = "menuRayonContent " style = "display: none;">
<div class = "menuFamille" idCat = "4024" typecat = "2">
<div class = "menuFamille" idCat = "1325" typecat = "2">
<div class = "menuFamille" idCat = "1226" typecat = "2">
<div class = "menuFamille" idCat = "2590" typecat = "2">
<div class = "menuFamille" idCat = "1595" typecat = "2">
...........
...........
或者像这样
<div class = "menuRayonContent avecLiens" style = "display: none;">
<div class = "menuFamille" idCat = "1024" typecat = "2">
<div class = "menuFamille" idCat = "1025" typecat = "2">
<div class = "menuFamille" idCat = "1026" typecat = "2">
<div class = "menuFamille" idCat = "290" typecat = "2">
<div class = "menuFamille" idCat = "2595" typecat = "2">
..........
...........
<div class = "menuRayonContent " style = "display: block;">
<div class = "menuFamille" idCat = "4024" typecat = "2">
<div class = "menuFamille" idCat = "1325" typecat = "2">
<div class = "menuFamille" idCat = "1226" typecat = "2">
<div class = "menuFamille" idCat = "2590" typecat = "2">
<div class = "menuFamille" idCat = "1595" typecat = "2">
.............
.............
<div class = "menuRayonContent " style = "display: none;">
<div class = "menuFamille" idCat = "4024" typecat = "2">
<div class = "menuFamille" idCat = "1325" typecat = "2">
<div class = "menuFamille" idCat = "1226" typecat = "2">
<div class = "menuFamille" idCat = "2590" typecat = "2">
<div class = "menuFamille" idCat = "1595" typecat = "2">
...........
...........
我想计算类属性 = "menuRayonContent" 或 class= "menuRayonContent avecLiens" 和 style = "display: block;" 的 div但直到现在我不能,(我使用 casperjs)
这是我的功能:
function getnb() {
var links = __utils__.getElementsByXPath(x('//div[contains(class, "menuRayonContent" && style = "display: block;")]'));
return Array.prototype.map.call (links, function (e) {
return e.getAttribute('href');
});
}
【问题讨论】:
-
这看起来不像 JavaScript。什么是
e.getAttribute return ('href');、__ __ getElementsByXPath utils (x (...? -
你能帮我解决我的问题吗!!!
-
如果我正确理解您的问题,您的第二个代码块应该可以解决您的问题。如果不是,请描述一下您遇到的问题。
-
是的,我认为 style = "display: block;"是我的问题来解决我的问题,
-
这就是我想做的,但我不知道怎么做
标签: javascript css xpath casperjs selectors-api