0

基本上,当HTML 文档中有多个时,我想找出登录表单。forms我的猜测如下:如果我能识别出类似'forgot your password''Remember me''keep me signed in' 属于哪个表单字符串,那么它可能是登录表单,因为这些字符串/链接出现在密码字段之后。

有什么办法可以找出哪个表单包含这些字符串/链接,然后在我的应用程序中使用该表单的名称或 ID?

更新:我使用以下代码获取包含字符串“忘记密码”的表单 ID,但它没有返回任何内容。

NSString *formID = [NSString stringWithFormat:@"%@",[self.browser stringByEvaluatingJavaScriptFromString:@"$('form').filter (function() {var text = this.innerHTML.toLowerCase();" 
                        "return text.indexOf('forgot your password') != -1 || "
                        "text.indexOf('remember me') != -1;}).attr('id');"] ];
4

2 回答 2

3
var loginFormId = $('form').filter(function() {
    return this.innerHTML.indexOf('forgot your password') != -1;
}).attr('id');​

或者简单地说:contains

var loginFormId = $('form:contains("forgot your password")').attr('id');​

:contains选择器文档

描述:选择所有包含指定文本的元素。匹配的文本可以直接出现在所选元素中、该元素的任何后代中,或者它们的组合中。与属性值选择器一样,:contains() 括号内的文本可以写成裸词或用引号括起来。文本必须具有匹配的大小写才能被选中。

现场演示


更新:

如果您不确定文本的大小写,则必须使用filter

var theFormId = $('form').filter(function() {
    var text = this.innerHTML.toLowerCase(); 
    return text.indexOf('forgot your password') != -1 || 
           text.indexOf('remember me') != -1;
于 2012-04-09T06:10:14.333 回答
1
var loginForm;
$("form").each(function(){
    if($(this).text().indexOf("Remember me")>=0)
         loginForm = $(this);
})
于 2012-04-09T06:11:26.157 回答