仅当jquery中的数据位于某个div中时,才读取jquery中的数据

仅当jquery中的数据位于某个div中时,才读取jquery中的数据,jquery,Jquery,我有 我只想让它从一个名为“logincap”的div中读取。因此,dom中可以有多个recaptcha\u challenge\u字段和recaptcha\u response\u字段 我知道用php进行验证和其他工作。如果php读取的内容不是nope,它将尝试使用Google验证验证码,否则检查帐户是否“可信”。所以我把这部分隔离出来让你们看。你知道我需要修改什么才能从“logincap”recapcha_response_字段和recapcha_challenge_字段?我假设你的#log

我有

我只想让它从一个名为“logincap”的div中读取。因此,dom中可以有多个
recaptcha\u challenge\u字段
recaptcha\u response\u字段


我知道用php进行验证和其他工作。如果php读取的内容不是nope,它将尝试使用Google验证验证码,否则检查帐户是否“可信”。所以我把这部分隔离出来让你们看。你知道我需要修改什么才能从“logincap”
recapcha_response_字段
recapcha_challenge_字段

我假设你的#logincap div环绕着#recapcha{challenge,response}字段,因此,最简单的解决方案不是同时使用#logincap和recaptcha字段来定位正确的字段吗

if ($('#logincap').length) // see if login cap exists or not
{
    challengeField = $("input#recaptcha_challenge_field").val();
    responseField = $("input#recaptcha_response_field").val();
}
else
{
    challengeField = "nope";
    responseField = "nope";
}
还是我遗漏了一些明显的东西

另一个完全不同的注意事项是:我不认为提供多个具有相同id的元素(即多个元素标识为recaptcha_{challenge,response}u字段)是有效的html


不管怎样,希望能有帮助:)

这个问题的措辞不是特别好,但我想试一下我认为你的意思

可以使用上下文缩小jQuery选择的字段范围。上下文是DOM的一部分,可以在任何进一步的jQuery选择中用作可选参数

例如:

if ($('#logincap').length) // see if login cap exists or not
{
    challengeField = $("#logincap > input#recaptcha_challenge_field").val();
    responseField = $("#logincap > input#recaptcha_response_field").val();
}
else
{
    challengeField = "nope";
    responseField = "nope";
}
我现在可以在“myElement”节点中查询其他DOM元素,如下所示:

var context = $('#myElement')[0];
这将确保jQuery只在我的上下文变量(在本例中为“myElement”)中包含的节点中查找表元素

因此,为了回答您的问题(希望如此),您可以设置如下上下文:

$('table', context).show();
var context = $('#logincap')[0];
然后,您可以像这样查询字段:

$('table', context).show();
var context = $('#logincap')[0];
现在:强制性警告。无论如何,您不应该在DOM上使用多个ID。元素的每个ID属性都应该是唯一的。如果您想在多个元素中引用相同的值,或者考虑使用像“代码”>ReaPrtChaseNojiFieldField<1/代码>这样的后缀,请考虑使用name属性。