Javascript 根据内容查找登录表单

Javascript 根据内容查找登录表单,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,基本上,当HTML文档上有多个表单时,我想找出登录表单。我的猜测如下:如果我能识别像“忘记密码”或“记住我”或“让我登录”这样的字符串属于哪个表单,那么它可能是登录表单,因为这样的字符串/链接出现在密码字段之后 有没有办法找出哪个表单包含这些字符串/链接,然后在我的应用程序中使用该表单的名称或ID 更新:我使用以下代码获取表单ID,其中包含字符串“忘记密码”,但它不返回任何内容 NSString *formID = [NSString stringWithFormat:@"%@",[self.b

基本上,当HTML文档上有多个
表单时,我想找出登录表单。我的猜测如下:如果我能识别像
“忘记密码”
“记住我”
“让我登录”
这样的字符串属于哪个表单,那么它可能是登录表单,因为这样的字符串/链接出现在密码字段之后

有没有办法找出哪个表单包含这些字符串/链接,然后在我的应用程序中使用该表单的名称或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');"] ];
或者简单地使用
:包含

var loginFormId = $('form:contains("forgot your password")').attr('id');​
:包含
选择器:

描述:选择包含指定文本的所有元素。 匹配文本可以直接显示在选定元素中、该元素的任何子元素中或其组合中。与属性值选择器一样,可以将:contains()括号内的文本写成裸字或用引号括起来。文本必须有匹配的大小写才能选择


更新:

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

var theFormId = $('form').filter(function() {
    var text = this.innerHTML.toLowerCase(); 
    return text.indexOf('forgot your password') != -1 || 
           text.indexOf('remember me') != -1;
或者简单地使用
:包含

var loginFormId = $('form:contains("forgot your password")').attr('id');​
:包含
选择器:

描述:选择包含指定文本的所有元素。 匹配文本可以直接显示在选定元素中、该元素的任何子元素中或其组合中。与属性值选择器一样,可以将:contains()括号内的文本写成裸字或用引号括起来。文本必须有匹配的大小写才能选择


更新:

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

var theFormId = $('form').filter(function() {
    var text = this.innerHTML.toLowerCase(); 
    return text.indexOf('forgot your password') != -1 || 
           text.indexOf('remember me') != -1;

那代码不够好。如果文本位于
更新的
内部,则它将不起作用:实际上,如果表单中除了textnode之外还有任何节点,那么您的代码将不起作用!例如:
没有
indexOf
函数,因此您的代码会导致错误-你的证明完全错了。我搜索
记住我
不要
忘记密码
。但是我用
text()
更新了它,希望你是在开玩笑!我的证明是完全错误的,因为我使用了其他字符串(存在于问题中)来获取代码错误?!我真的希望你写的评论带有幽默感!那代码不够好。如果文本位于
更新的
内部,则它将不起作用:实际上,如果表单中除了textnode之外还有任何节点,那么您的代码将不起作用!例如:
没有
indexOf
函数,因此您的代码会导致错误-你的证明完全错了。我搜索
记住我
不要
忘记密码
。但是我用
text()
更新了它,希望你是在开玩笑!我的证明是完全错误的,因为我使用了其他字符串(存在于问题中)来获取代码错误?!我真的希望你写的评论带有幽默感!如何在UIWebView的stringByEvaluatingJavaScriptFromString:method中使用此javascript代码?@ManishVerma。我建议你在一个新问题中详细地问这个问题。@ManishVerma。我不知道那是什么代码。我建议你接受一个答案,因为你原来的问题得到了一个答案。问一个新问题。上面的javascript代码在与objective-C一起使用时不起作用,否则它在浏览器上运行得很好。@ManishVerma。正如我两次写信给你的那样:你得到了javascript问题的答案。如果您有其他问题\问题,请在其他线程中提出新问题。祝你好运如何在UIWebView的stringByEvaluatingJavaScriptFromString:method中使用此javascript代码?@ManishVerma。我建议你在一个新问题中详细地问这个问题。@ManishVerma。我不知道那是什么代码。我建议你接受一个答案,因为你原来的问题得到了一个答案。问一个新问题。上面的javascript代码在与objective-C一起使用时不起作用,否则它在浏览器上运行得很好。@ManishVerma。正如我两次写信给你的那样:你得到了javascript问题的答案。如果您有其他问题\问题,请在其他线程中提出新问题。祝你好运