我正在尝试将完成的UIWebView的所有名为“ thumb”的div类的结果放入字符串中,但是我不知道为什么NSLog只显示第一个div类thumb(应该是“ thumb”的37个不同实例) )

我感谢您的帮助。

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[NSURLCache sharedURLCache] removeAllCachedResponses];

    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.thewebsite.com"]]];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    if (!webView.isLoading)
    {
        NSString *test = @"function f()"
        "{"
            "var theThumbs = document.getElementsByClassName('thumb');"
            "for(var i=0; i < theThumbs.length; i++)"
            "{"
                "return(theThumbs[i].innerHTML);"
            "}"
        "}f()";

        NSString *input = [self.webView stringByEvaluatingJavaScriptFromString:test];

        NSLog(@"String is: %@", input);
    }
}

最佳答案

您打电话的时候

  'return(theThumbs[i].innerHTML);'


您是在第一次迭代中从函数返回的。它不会每次都循环。您需要创建一个变量来保存值。

 "var theThumbs = document.getElementsByClassName('thumb');"
 "var someString = '';"
        "for(var i=0; i < theThumbs.length; i++)"
        "{"
            "someString +=(theThumbs[i].innerHTML);"
        "}"
"return someString;"

关于javascript - 在UIWebView上使用Javascript获取所有特定的div类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15755753/

10-10 15:33