JQuery(可能是javascript)澄清
我尝试将样式添加到动态创建的元素中,并找到了 -----编辑:添加更多代码----- 这个(分成两行): 为什么第一个有效而第二个无效JQuery(可能是javascript)澄清,javascript,jquery,Javascript,Jquery,我尝试将样式添加到动态创建的元素中,并找到了 -----编辑:添加更多代码----- 这个(分成两行): 为什么第一个有效而第二个无效 谢谢:)。比方说,guiPatch包含一些HTML,例如ABC 现在,您的第一个代码将如下所示: $('<div>ABC</div>').appendTo($(".container")).css("color","yellow") 第一行是在.container中添加一个ABC对象。好的但是第二行还创建了另一个ABC对象并将其传递给.
谢谢:)。比方说,
guiPatch
包含一些HTML,例如ABC
现在,您的第一个代码将如下所示:
$('<div>ABC</div>').appendTo($(".container")).css("color","yellow")
第一行是在.container
中添加一个ABC
对象。好的但是第二行还创建了另一个ABC
对象并将其传递给.css()函数,该函数正在执行它的工作,即应用样式并返回一个对象ABC
。但是我们无法看到更改,因为我们没有将这个新的ABC
附加/添加到DOM中的任何位置。一旦.css()函数完成其工作,该对象就会丢失
希望现在一切都清楚了
在Chrome开发者工具中尝试一下。复制、粘贴并按enter键输入我分解的每一段/每一步代码,您将能够看到它的运行
多谢各位
编辑/添加:
*****代码内部注释的附加说明************
无论jQuery($)返回什么,它都始终是和对象。因此,检查它是否是一个对象是多余的[imo]。您可以通过在Chrome开发控制台中键入这些代码来进行检查
typeof($('')) // returns object, though empty
并且在任何网页的控制台中键入以下内容:
typeof($('div')) // also an object, but an array of all the divs in that webpage
如果愿意,也可以直接使用.each,而不是另一个for循环
$('.active').each(function(index){
$(this) //$(this) will give you an object to work on in each iteration
})
请注意,如果您发现任何异常,我将更新我的答案。什么是
样式
值?提示:假设guiPatch
是一段HTML标记,每次调用$(guiPatch)
都会创建新的DOM元素<代码>$(guiPatch)[0]!==$(guiPatch)[0]@DCoder-必须是它:)。如果你想-把它作为一个答案,我会把它标记为选中的一个。尽可能清楚:)你也可以参考我的评论(//一定是一个更好的方法来迭代“选中”//而不检查对象是否有属性“id”…有什么建议吗?)谢谢你。编辑了这篇文章。在我看来,所选[radio]=“object”检查的类型是多余的,因为即使$('.active')返回一个对象数组,该数组中的每个元素都绑定为一个对象。如果您发现其他问题,请测试并告诉我。谢谢并欢迎:)@JimmyBoyReplace for loop with.each,因此您可以省略选择的数组访问操作符[radio],直接使用循环中的$(this)使用对象:)玩它,jQuery真的很有趣@jimmyboy关于jQuery始终返回对象的说法可能是对的,但是我检查的不是JQuery的返回值,而是特定位置(选中的[radio])的返回值,这并不总是一个对象:)我现在将尝试。每件事,谢谢,伙计。试着这样想。在for循环中将其命名为“i”,而不是“radio”,因为for(数组中的vari)与for(vari=0;i)相同
$('<div>ABC</div>').appendTo($(".container"));
$('<div>ABC</div>').css("color","yellow");
typeof($('')) // returns object, though empty
typeof($('div')) // also an object, but an array of all the divs in that webpage
$('.active').each(function(index){
$(this) //$(this) will give you an object to work on in each iteration
})