jQuery创建元素-另一个 .attr()与.prop()的问题
jQuery创建元素-另一个 .attr()与.prop()的问题
这个问题已经有答案了:
可能的重复:
有了jQuery中的新.prop()
方法,创建一个特定字段的新元素,如一个链接,哪种方法更好:
$(\'
$(\'
$(\'\');
我一直倾向于使用#2,但是不清楚现在放入DOM中的新元素是否应该使用#1。
admin 更改状态以发布 2023年5月21日
通常我会像这样创建一个a标签:
$('
在元素开始时添加尽可能多的属性(是
属性
,不是属性)。所以你可以对像输入框这样的项目做同样的事情:
$('',{ name: 'some_name', id: 'some_id', value: item_value, readonly: 'true', style: 'background: #eee;', size: 15 });
或真正的div:
$('',{ id: 'some_id', text: 'this will be inside the div' });
这里是一个fiddle示例:http://jsfiddle.net/maniator/mbjgd/
编辑
来自我的下面的评论:之所以会这样,是因为当你创建项目时,你是通过设置它的属性来创建的,以后这些属性变得毫无意义,当它们被类似javascript的东西更改时,所以在那时你必须使用对象的属性来获得你可能正在寻找的真正解决方案。
在这种情况下,我会选择使用attr()
。因为你正在创建一个新的HTML属性,所以强调这一点是有意义的。
然而,由于href
属性直接映射到href
DOM属性,使用prop()
将产生完全相同的结果。
让我们看另一个例子,更相关于attr()
和prop()
之间的区别:假设你想设置的
在我看来,(2)和(3)比(1)更清晰地表达了意图。事实上,由于该标记在宿主语言中可能是保留字,因此不能有名为class
的DOM属性,这只是实现细节。在这种情况下,我们通常想到的是
当然,在处理类似checked
或disabled
之类的“布尔”HTML属性时,相反的情况也可能是真实的。在这种情况下,设置强类型DOM属性而不是创建不太明确的HTML属性会更加健壮。