基本上,当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');"] ];
答案 0 :(得分: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
选择器docs:
描述:选择包含指定文本的所有元素。 匹配文本可以直接出现在所选元素中,任何元素的后代中,或其组合中。与属性值选择器一样,括号内的文本:contains()可以写为单词或用引号括起来。文本必须具有匹配的案例才能被选中。
<强>更新强>
如果您不确定文字的大小写,则必须使用filter
:
var theFormId = $('form').filter(function() {
var text = this.innerHTML.toLowerCase();
return text.indexOf('forgot your password') != -1 ||
text.indexOf('remember me') != -1;
答案 1 :(得分:1)
var loginForm;
$("form").each(function(){
if($(this).text().indexOf("Remember me")>=0)
loginForm = $(this);
})