Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery多选择器_Javascript_Jquery_Jquery Selectors - Fatal编程技术网

Javascript Jquery多选择器

Javascript Jquery多选择器,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我试图选择一个输入框,但因为我可能有多个输入,我试图限制我选择的一个。下面是我的jquery代码,它选择了输入,但由于某些原因它不起作用。我做错什么了吗?一旦文档准备就绪,就可以执行此操作 if ( $("input[name='RETURN.URL'][value='http://link.com?TYPE=P&PID=ST-L09F166&CONSTITUENCY=WBST']").length > 0 ) { alert("Transcript

我试图选择一个输入框,但因为我可能有多个输入,我试图限制我选择的一个。下面是我的jquery代码,它选择了输入,但由于某些原因它不起作用。我做错什么了吗?一旦文档准备就绪,就可以执行此操作

if ( $("input[name='RETURN.URL'][value='http://link.com?TYPE=P&PID=ST-L09F166&CONSTITUENCY=WBST']").length > 0 )
{
    alert("Transcript report");
}
else
{
    alert("Not Transcript Report");
}
这里是html

<input type="hidden" name="RETURN.URL" value="http://link.com?TYPE=P&amp;PID=ST-L09F166&amp;CONSTITUENCY=WBST">
<input type="hidden" name="SUBMIT_OPTIONS" value="">

选择器正在使用HTML转义属性值:

[value='http://link.com?TYPE=P&amp;PID=ST-L09F166&amp;CONSTITUENCY=WBST']
选择器的实际值应使用
&
,而不是
&

[value='http://link.com?TYPE=P&PID=ST-L09F166&CONSTITUENCY=WBST']
该值是HTML转义的,以便在属性中正确表示该值,但查询选择器需要与实际值匹配


您最好使用一个简单的选择器,比如类。这一点尤其重要,因为
[value]
属性中表示的URL可以以任何顺序拥有其查询字符串参数,并表示相同的资源。

请检查该值,而不是将其用作选择器


RETURN.URL
中丢失点(在输入元素中添加带点的名称不是首选方法)

&使用
$('input[name=RETURNURL]').val().length
使用jQuery attr()方法


除非另有说明,否则这些内容是动态添加的,最好给这个输入一个id,并通过它进行访问。

HTML实体在浏览器中显示之前会被翻译,因此
&变成
&
等等。因此,当您过滤选择器时,您正在查找已转换为其他内容的内容

这是我的建议

不必详细说明为什么要以这种方式选择输入元素,您只需理解我所说的,并将选择器更改为:

$("input[name='RETURN.URL'][value='http://link.com?TYPE=P&PID=ST-L09F166&CONSTITUENCY=WBST']")

删除[value]限定符。。。它可能坏了。另外:添加一个类并将其用作选择器$('input.report');我不明白你的问题。你的代码的目的是什么?你能多次使用相同的名字吗?错误消息?@Richard:在这种情况下,如果他想针对特定的输入,ID更合适。@glautrou当然,ID也可以。除了“价值”,什么都可以。值不应该被用作CSS选择器过滤器。我同意,id会很糟糕,但是我实际上不会生成html,因为html页面是动态生成的,我无法控制。该死,你比我快了1分钟。如果愿意,可以随意使用。它将如何设置值?因为我真的不想设定anything@Richard:我实际上使用了修改后的attr()方法进行了编辑。我的初始答案确实会设置该值。@Jseb:我已使用修改后的attr()方法编辑了我的答案。这应该行得通。哇,谢谢你,这是我一直在研究的,完全有道理,我同意过滤我正在寻找的输入可能不是最好的,但除非我使用jquery,否则我不会真正生成html。请不要滥用
元素,它是用来标记用户输入(如键盘按钮),不是为了让你们的链接脱颖而出,来吧,伙计们。让我们不要为一个简单的格式化元素而争吵。这里用哪种方式并不重要,所以就让它去吧。
if($("input[value='http://link.com?TYPE=P&PID=ST-L09F166&CONSTITUENCY=WBST']").attr('name') == 'RETURN.URL'){
 alert("Transcript report");
}
else
{
    alert("Not Transcript Report");
}
$("input[name='RETURN.URL'][value='http://link.com?TYPE=P&PID=ST-L09F166&CONSTITUENCY=WBST']")