波浪号“~”;在jquery中选择器获得意外的集合
Tilde "~" in jquery selector obtains unexpected set
我有一个特定的值,我正在检查是否可以找到具有Id属性值的单选按钮,从我的值开始:
if($("input:radio[id^="+myValue+"]").length > 0)
{
// some logic
}
由于我有一个约定,myValue的求值应该是~STR_2
,因此导致下面的选择求值"input:radio[id^=~STR_2]"
。
在我的页面中没有以这个id ~STR_2
开头的单选按钮,但是得到的选择包含了页面上所有的单选按钮,并且长度>大于零。
我知道波浪~
操作符用于查找包含特定值的字符串,但它被用作~=
而不是=~
。
我希望有人能解释这是怎么发生的,以及在一个选择器中有^=~
是什么意思。
注意:当我使用单引号来包装值$("input:radio[id^='"+myValue+"']")
我不能把我的手在确切的问题,但这似乎是一个jQuery错误。
我使用的是jQuery库1.6,我已经在多个jQuery版本上尝试了这个例子,并且版本号开始逐渐上升。在jQuery 1.8版本中,这些选择给出了以下错误:
Uncaught错误:语法错误,无法识别的表达式:输入:无线电[id ^ = ~]
检查在jQuery 1.8以下版本上运行的代码片段,选择得到所有无线电,甚至没有id属性的无线电:
var myValue = "~item34";
console.log($("input:radio[id^="+myValue+"]").length);
console.log($("input:radio[id^="+myValue+"]"));
if($("input:radio[id^="+myValue+"]").length > 0)
{
$("#result").html("selection found " + $("input:radio[id^="+myValue+"]").length + " radio buttons");
}
else
{
$("#result").html("no selection");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<input type="radio" name="test" id="item1" value="1"/> A
<input type="radio" name="test" id="item2" value="2"/> B
<input type="radio" name="test" id="item3" value="3"/> C
<input type="radio" name="test" id="item4" value="4"/> D
<input type="radio" name="test" value="5"/> E
<input type="radio" name="test" id="item6" value="6"/> F
<input type="radio" name="test" id="item7" value="7"/> G
<br />
<br />
<p id="result"></p>
相关文章:
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 在动态创建的元素上获取对特定选择器的引用
- AngularJS-在JSON选择器中使用变量名
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- jQuery最近父级的数据属性选择器
- 为什么不'在JQuery中找到第二个css选择器的工作
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- jquery IE7中的第n个选择器
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器
- jquery日期选择器年份范围默认值
- jquery日期选择器失去了交互性
- 正在搜索JavaScript日期选择器滑块
- 如何将返回的值应用于多个不同位置的多个选择器
- 访问 Jquery 选择器作为对象属性,意外结果
- 量角器选择器的意外标识符
- 颜色选择器插件脚本导入导致意外的标记
- 波浪号“~”;在jquery中选择器获得意外的集合
- 简单jquery选择器脚本中出现意外行为
- 流星选择器不工作,出现意外字符串错误