Nig*_* Wu 2 jquery internet-explorer google-chrome jquery-selectors
我是jQuery的新手.使用[name = value]选择器时遇到了问题.这是HTML:
<input type="number"/>
Run Code Online (Sandbox Code Playgroud)
很简单吧?这是JS:
$("input").val(100);
$("input[value='100']").val(200)?
Run Code Online (Sandbox Code Playgroud)
结果是:脚本的第一行有效,但不是第二行.(Chrome,FF,IE9)这两行都适用于IE8.怎么会这样?顺便说一下,我正在使用jQuery1.7.2.或者你可以在http://jsfiddle.net/wzKNV/上测试上面的代码
小智 6
该属性等于选择器检查属性,但.val()只是改变了性质,所以选择没有看到更新.
querySelectorAlljQuery/Sizzle默认强制执行此"仅属性"行为的本机方法.
如果你打破选择器querySelectorAll,所以必须使用Sizzle,它将工作...
// v------made it a non-standard Sizzle selector
$(":input[value='100']").val(200);
Run Code Online (Sandbox Code Playgroud)
这是因为Sizzle选择器不一定符合qSA选择器.当然,这会稍微改变选择器的含义,但对于说明是有用的.
演示: http : //jsfiddle.net/wzKNV/3/
为了保持它使用标准选择器(这是一个好主意IMO),你可以使用filter()...
$("input").filter(function() { return this.value === '100'; })
.val(200);
Run Code Online (Sandbox Code Playgroud)
演示: http : //jsfiddle.net/wzKNV/4/
| 归档时间: |
|
| 查看次数: |
3227 次 |
| 最近记录: |