tis*_*was 4 javascript internet-explorer-8
我有一些javascript,并且在IE8中,parentNode或previviousElementSibling似乎都在破坏.代码在firefox和IE9中运行良好.这是没有实现的行:
$(submitter.parentNode.parentNode.previousElementSibling).children('#mark_as_broken').show();
Run Code Online (Sandbox Code Playgroud)
代码是这样的
<form><div><input id=mark_as_broken></input></div></form>
<form><div><input id=mark_as_fixed></input></div></form>
Run Code Online (Sandbox Code Playgroud)
其中mark_as_fixed输入是提交者.这适用于其他浏览器.
任何想法都不会起作用,为什么?
use*_*716 13
previousElementSibling IE9之前不支持.
http://www.quirksmode.org/dom/w3c_core.html#t84
这是一个应该有效的功能.尚未测试过.似乎工作.
var previousElementSibling = function( el ) {
if( el.previousElementSibling ) {
return el.previousElementSibling;
} else {
while( el = el.previousSibling ) {
if( el.nodeType === 1 ) return el;
}
}
}
$( previousElementSibling(submitter.parentNode.parentNode) )
Run Code Online (Sandbox Code Playgroud)
编辑:
您没有提到jQuery,但您似乎正在使用其API.如果是这样,你可以这样做:
$(submitter).closest('form').prev().find('#mark_as_broken').show();
Run Code Online (Sandbox Code Playgroud)
根据您的标记,看起来好像您应该使用.find()而不是.children().
| 归档时间: |
|
| 查看次数: |
9204 次 |
| 最近记录: |