首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone UIWebView getElementsByClassName

iPhone UIWebView getElementsByClassName
EN

Stack Overflow用户
提问于 2012-09-16 13:03:45
回答 1查看 2.5K关注 0票数 1

我仍然和getElementsByID一起工作,这都是上帝。但是现在我想用ByClassName来做它,但是它不起作用。

我想要这个页面的温度:http://www.weatherman.com/us/ny/new-york.html类名是: temp tempF

但是这段代码不起作用:tempString = [deg stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementByClassName('temp tempF').innerText;"]]; deg是显示页面的WebView。

EN

回答 1

Stack Overflow用户

发布于 2012-09-16 13:18:14

javascript函数的名称是getElementsByClassName,带有(因为在id中,与给定文档中唯一的id不同,类名可以归因于同一页面的多个元素)。

如果您查看页面的源代码,实际上可以看到有多个元素被类temptempF标记。你需要选择正确的(首先?第二次?)取决于你想要提取的是哪一个。

例如:

代码语言:javascript
复制
tempString = [deg stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('temp tempF')[0].innerText;"];

(如果没有任何格式参数,则不需要使用stringWithFormat,这太过分了,直接使用字符串文本即可)

PS:为了明确词汇表,请注意,元素是在<div class="temp tempF">中编写的,这意味着这是一个div元素,它应用了两个不同的div类,即temptempF__。因此,这个元素不是“一个类名为temp tempF__的元素”,而是“一个具有两个类名temptempF的元素”。

提示:要调试javascript,请在浏览器中打开页面,比如Chrome或Safari,显示页面检查器,然后转到Console选项卡,这样您就可以在这里输入javascript代码,并使用不同的表达式进行测试。在您的示例中,您可能会看到您的函数被错误地输入,在名称中缺少"s“,一旦更正,您将看到getElementsByClassName的结果返回多个元素,而不仅仅是一个。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12447079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档