在对象中的单个元素上使用jQuery .append
Using jQuery .append on individual elements in an object
在这里尝试新的东西,我很难理解为什么这没有按我的预期工作。
因此,为了简单起见,我用一个简单的 for 循环设置了一些元素:
for(var i=0; i<5; i++){
$('body').append('<div class="green">Here I am</div>');
}
我将所有项目选为对象(我需要单独更改每个项目):
$greenDivs = $('div.green');
现在,当我想访问它时,我可以使用它的索引在控制台中很好地做到这一点:
console.log($greenDivs[3]);
它返回了一个漂亮、整洁的控制台: <div class="green">
我也可以在页面上看到选中的控制台。
但是,当我尝试使用某些jQuery函数以任何方式更改它时,我只会收到诸如$greenDivs[3].append is not a function
为什么功能不起作用?是因为.green
元素被分类到对象中的方式吗?我可以使用所有基本的JS属性,例如:
$greenDivs[3].innerHTML = "Whatever"
在理解为什么我必须使用基本的 javascript 对象属性来修改单个元素时,任何帮助都值得赞赏。
如果你想要一个例子,请在这里播放:https://jsfiddle.net/eacdtzjw/2/
>$greenDivs[3]
给你一个DOM节点。这些没有任何jQuery特定的方法。
要将其保留为 jQuery 对象,请使用 $greenDivs.eq(3)
(参见 https://api.jquery.com/eq/)。
您当然可以将其重新包装为 jQuery 对象,例如 $( $greenDivs[3] )
,但在这种情况下,这是一个不必要的步骤。
获取元素$greenDivs[3]
:
$(function(){
for(var i=0; i<5; i++){
$('body').append('<div class="green">Here I am</div>');
}
$greenDivs = $('div.green');
console.log($greenDivs[3]);
$($greenDivs[3]).append('Hello');
});
.green {
background: #00FF00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
$greenDivs[3]实际上是一个对象而不是jquery对象。如果你想使用jquery追加函数,你应该
$($greeenDivs[3]).append('...');
或
$greenDivs.eq(3).append('....')
- Jquery append oly获取循环Rails中的最后一个elemen
- MutationObserver observe jquery append?
- 使用jquery.append()方法
- jQuery:append()不是't在选择器中插入任何元素
- JQuery Append html5
- 如何防止 jQuery append() 中的自动标记关闭
- 在 Jquery append 之后立即渲染 html
- Trouble with jquery .append
- jQuery.append'我不能胜任我的工作
- Jquery append()概要文件(使用$.getJSON的服务器数据)
- 是否可以用php条件解析jQuery.append中的Html
- Jquery-append函数花费了太多时间
- 为什么jquery append没有'不适用于phonegap ios
- Jquery Append方法导致重叠
- css未应用于使用jQuery.append()创建的html元素
- jquery append()元素点击事件
- 这是使用 Jquery append() 的 IE8 的错误吗?
- Jquery append html weird behavior
- jQuery .append() 什么时候像 .insertBefore() 最后一个子子项与记录的 .insertBe
- jQuery append 不适用于谷歌地图