IE 7不喜欢jquery(';<;button/>;';).attr(';type';,';button';)

IE 7不喜欢jquery(';<;button/>;';).attr(';type';,';button';),jquery,internet-explorer,Jquery,Internet Explorer,我正在尝试使用jquery创建一个按钮。 我使用以下代码 jquery('<button/>', {type:'button'}).text(name) jquery(“”,{type:'button})。文本(名称) 不过,这在Safari、FF IE8中有效,但在IE7中无效 我尝试使用attr函数: jquery('<button/>').attr('type','button').text(name) jquery(“”).attr('type','butt

我正在尝试使用jquery创建一个按钮。 我使用以下代码

jquery('<button/>', {type:'button'}).text(name)
jquery(“”,{type:'button})。文本(名称)
不过,这在Safari、FF IE8中有效,但在IE7中无效

我尝试使用attr函数:

jquery('<button/>').attr('type','button').text(name)
jquery(“”).attr('type','button').text(名称)
这也行不通

有什么好办法吗?我想如果我不指定一个类型,它会默认为button,但我宁愿这样做

感谢您的帮助

您是否尝试过:

var $btn = $("<button>Button Text</button>");
var$btn=$(“按钮文本”);
然后您可以将其附加到文档中的任何位置。通常,您可以通过这种方式使用字符串文字创建几乎任何DOM元素。

试试以下方法:

var button = $('<button type="button"/>');
var按钮=$('');
现在,在IE中,按钮的默认类型是“button”(至少是7,不确定标准模式8)。然而,上述方法应该有效。我前几天才碰到这个。IE允许您在创建元素时在元素语法中提供类型,而jQuery似乎正在将其参数直接传递给低级DOM API

哦,它在FF和Chrome中也能很好地工作


编辑-嗯,一年有多大的不同,嗯?我现在无法让这种机制在jQuery1.4.4或jQuery1.5.x中运行。好消息是,jQuery1.6似乎按照OP想要的方式工作:通过以更普通的类似jQuery的方式设置“type”

然而,似乎有效的方法是直接调用元素上的“.setAttribute()”。因此:

var b = $('<button/>');
b[0].setAttribute('type', 'button');
var b=$('');
b[0]。setAttribute('type','button');

不会引发异常,并且会正确设置“type”属性。(这本身就有点奇怪,因为微软清楚地将“type”文档记录为只读。)1.6中的更改似乎是沿着同样的思路进行的。以前,库确实会检查“type”,并明确禁止在DOM中已经存在的元素上设置它,但会继续尝试将其设置为DOM中不存在的元素的简单属性。现在,1.6代码调用“.setAttribute()”来设置“type”,这(出于我不知道的原因)可以正常工作。

我想您应该使用这个$(':submit')

它查找任何充当提交按钮的内容。
请参阅:

这肯定行得通。我的问题在于按钮的“类型”。一旦我指定IE7拒绝它,你当然可以这样做:var$btn=$(“按钮文本”);我也试过了,但没用。我一介绍IE7不喜欢的类型属性……这可能是JQuery1.4的错误吗?很有趣。我没有IE7来测试这个。如果它在其他浏览器中工作,我怀疑问题出在jQuery上。
是否需要
type=“button”
?实际上默认为type=submit。button有type属性,type=button,type=submit和type=reset@code诗人,公平地说,我也必须参考按钮标签。果不其然,它的属性类型为:果不其然。我错了。对不起,这一定是我的错,因为我试过了,但还是不起作用。在我看来,IE7、IE8、FF和Safari也有type=“button”作为默认值……也许我会不声明它,这绝对是不对的:所有“好”浏览器都遵循W3C规范,其中规定默认类型为“submit”。(这是“标准模式”;如果你处于怪癖模式,那么(A)我不知道他们做什么,(B)摆脱怪癖模式。)同样,这在IE中肯定有效。你说“它仍然不起作用”的确切意思是什么?你有Javascript错误吗?对不起伙计们,值得注意的是,浏览器在这里抛出了一个关于jquery的错误:Message:Object不支持此属性或方法行:20 Char:49 Code:0 URI:这很奇怪,因为它指向的是jquery文件而不是我的脚本。这是因为当jquery实际尝试设置属性时会发生异常。确保没有使用jQuery
attr()
函数设置属性!上面的文本是节点创建命令,而不是DOM选择器命令。可以将新节点附加到DOM。