Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在CasperJS中获取href属性值?_Javascript_Attributes_Web Crawler_Casperjs - Fatal编程技术网

Javascript 如何在CasperJS中获取href属性值?

Javascript 如何在CasperJS中获取href属性值?,javascript,attributes,web-crawler,casperjs,Javascript,Attributes,Web Crawler,Casperjs,下面是我如何使用代码在元素中获取href值: var info = this.getElementsInfo(selector); // an array of object literals for (var i = firstp; i < info.length; i=i+interval) { if(i==0) this.echo('"'+info[i].getAttribute('href')+'"'); else this.echo

下面是我如何使用代码在元素中获取href值:

var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
    if(i==0)
        this.echo('"'+info[i].getAttribute('href')+'"');
    else
        this.echo(',"'+info[i].getAttribute('href')+'"');
}
var info=this.getElementsInfo(选择器);//对象文字的数组
对于(变量i=firstp;i
我在中找到了一些东西,我可以用这样的代码解决我的问题:

var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
    if(i==0)
        this.echo('"'+info[i].attributes.href+'"');
    else
        this.echo(',"'+info[i].attributes.href+'"');
}
var info=this.getElementsInfo(选择器);//对象文字的数组
对于(变量i=firstp;i
现在它可以工作了

它以前不使用
getAttribute
的原因是它返回DOM节点的普通对象表示,而不是实际的DOM节点。由于CasperJS(以及PhantomJS)有两个上下文,DOM节点无法从页面上下文(内部)中传递出去。

我在中找到了一些东西,我可以用如下代码解决我的问题:

var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
    if(i==0)
        this.echo('"'+info[i].attributes.href+'"');
    else
        this.echo(',"'+info[i].attributes.href+'"');
}
var info=this.getElementsInfo(选择器);//对象文字的数组
对于(变量i=firstp;i
现在它可以工作了

它以前不使用
getAttribute
的原因是它返回DOM节点的普通对象表示,而不是实际的DOM节点。由于CasperJS(以及PhantomJS)有两个上下文,DOM节点无法从页面上下文(内部)中传递出去。

我在中找到了一些东西,我可以用如下代码解决我的问题:

var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
    if(i==0)
        this.echo('"'+info[i].attributes.href+'"');
    else
        this.echo(',"'+info[i].attributes.href+'"');
}
var info=this.getElementsInfo(选择器);//对象文字的数组
对于(变量i=firstp;i
现在它可以工作了

它以前不使用
getAttribute
的原因是它返回DOM节点的普通对象表示,而不是实际的DOM节点。由于CasperJS(以及PhantomJS)有两个上下文,DOM节点无法从页面上下文(内部)中传递出去。

我在中找到了一些东西,我可以用如下代码解决我的问题:

var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
    if(i==0)
        this.echo('"'+info[i].attributes.href+'"');
    else
        this.echo(',"'+info[i].attributes.href+'"');
}
var info=this.getElementsInfo(选择器);//对象文字的数组
对于(变量i=firstp;i
现在它可以工作了

它以前不使用
getAttribute
的原因是它返回DOM节点的普通对象表示,而不是实际的DOM节点。由于CasperJS(就此而言还有PhantomJS)有两个上下文,因此DOM节点不能从页面上下文(内部)中传递出去。

遵循以下步骤:

先找到路

some variable = 'table#dgResults > tbody > tr:nth-child(1) > td > b a';
它是这样的(这只是对“某个变量”的解释):

接下来使用
getElementsAttribute

var nextStep = this.getElementsAttribute(elem, 'href');
然后将其转储:

utils.dump(nextStep);
您应该在转储时看到所有链接。请记住,
this.getElementAttribute()
返回标记之间的1个值,而
this.getElementsAttribute()
返回标记之间的所有值。

遵循以下步骤:

先找到路

some variable = 'table#dgResults > tbody > tr:nth-child(1) > td > b a';
它是这样的(这只是对“某个变量”的解释):

接下来使用
getElementsAttribute

var nextStep = this.getElementsAttribute(elem, 'href');
然后将其转储:

utils.dump(nextStep);
您应该在转储时看到所有链接。请记住,
this.getElementAttribute()
返回标记之间的1个值,而
this.getElementsAttribute()
返回标记之间的所有值。

遵循以下步骤:

先找到路

some variable = 'table#dgResults > tbody > tr:nth-child(1) > td > b a';
它是这样的(这只是对“某个变量”的解释):

接下来使用
getElementsAttribute

var nextStep = this.getElementsAttribute(elem, 'href');
然后将其转储:

utils.dump(nextStep);
您应该在转储时看到所有链接。请记住,
this.getElementAttribute()
返回标记之间的1个值,而
this.getElementsAttribute()
返回标记之间的所有值。

遵循以下步骤:

先找到路

some variable = 'table#dgResults > tbody > tr:nth-child(1) > td > b a';
它是这样的(这只是对“某个变量”的解释):

接下来使用
getElementsAttribute

var nextStep = this.getElementsAttribute(elem, 'href');
然后将其转储:

utils.dump(nextStep);

您应该在转储时看到所有链接。请记住,
this.getElementAttribute()
返回标记之间的1个值,而
this.getElementsAttribute()
返回标记之间的所有值。

没有问题。当你写一个答案时,最好加上一个描述,说明为什么事情是这样的。我给你加了一个主题更广泛的,没关系。当你写一个答案时,最好加上一个描述,说明为什么事情是这样的。我给你加了一个主题更广泛的,没关系。当你写一个答案时,最好加上一个描述,说明为什么事情是这样的。我给你加了一个主题更广泛的,没关系。当你写一个答案时,最好加上一个描述,说明为什么事情是这样的。我为你添加了一个更广泛的主题。