Javascript 附加到div的问题
尝试使用以下函数将div附加到另一个divJavascript 附加到div的问题,javascript,jquery,Javascript,Jquery,尝试使用以下函数将div附加到另一个divcustomizefields,但未成功。控制台没有返回任何错误,所以我不知道从这里到哪里去 javascript function customizefields(objNames) { $('td div').each(function(){ name = $(this).text(); if (name.indexOf(" ") != -1) { name = name.substri
customizefields
,但未成功。控制台没有返回任何错误,所以我不知道从这里到哪里去
javascript
function customizefields(objNames) {
$('td div').each(function(){
name = $(this).text();
if (name.indexOf(" ") != -1) {
name = name.substring(0, name.indexOf(" "));
}
if (objNames[name]) {
$('<div/>', {
id: 'bio',
text: objNames[name].bio
}).appendTo(this);
}
});
}
var namesToChange = {
'Ben':{'class':'pn_cool','bio':'some text for ben'},
'Andrew':{'class':'pn_bad','bio':'some text for andrew'}
};
setInterval(function(){customizefields(namesToChange)}, 1000);
函数自定义字段(对象名称){
$('td div')。每个(函数(){
name=$(this.text();
if(name.indexOf(“”)=-1){
name=name.substring(0,name.indexOf(“”);
}
if(objNames[名称]){
$('', {
id:'生物',
文本:objNames[name].bio
}).附于(本);
}
});
}
变量名称更改={
本:{class':'pn_cool','bio':'some text for Ben'},
“Andrew”:{“class”:“pn_bad”,“bio”:“Andrew的一些文本”}
};
setInterval(function(){customizefields(namesToChange)},1000);
html
<tr>
<td class="stxt2">
<img src="#" class="pic">
<div class="dtxt2" title="07/10/12 09:40 PM">40 mins ago</div>
<b class="nme pn_usr">Andrew</b>: Ut lacus sapien, pretium ut dictum eget, tempus ac nisi.
</td>
</tr>
<tr>
<td class="stxt">
<img src="#" class="pic">
<div class="dtxt" title="07/10/12 09:30 PM">30 mins ago</div>
<b class="nme pn_usr">Ben</b>: Cras vitae cursus lectus.
</td>
</tr>
<tr>
40分钟前
安德鲁:我们是智者,我们是先知先觉者,我们是先知先觉者。
30分钟前
本:这是我的生活。
我试图实现的结果
<tr>
<td class="stxt">
<img src="#" class="pic">
<div id="bio">TEXT FROM OBJECT WILL GO HERE</div>
<div class="dtxt" title="07/10/12 09:30 PM">30 mins ago</div>
<b class="nme pn_usr">Ben</b>: Cras vitae cursus lectus.
</td>
</tr>
<tr>
对象中的文本将转到此处
30分钟前
本:这是我的生活。
在我看来,您应该查看兄弟b
标记的文本内容,而不是当前的div
标记
例如,当前,name
var(顺便说一句,它是全局的)的值将是“40”,下一次迭代的值将是“30”
你大概是说
$('td div').each(function() {
name = $(this).next('b').text();
//more code...
您可以尝试使用JQuery api
.before或.prepend执行一些简单的调试。如果元素未附加,则表示函数未被调用,或者
If(objNames[name])
为false
。因此,让我们看看name
有哪些值:它将分别是30
和40
(),并且这两个值都不是namesToChange
对象中的属性。似乎您想从b
元素而不是div
元素获取文本。@如果我更改为$('td b')
,则会将div放在
标记内。你知道我怎样才能让它在外部运行吗?你可以使用DOM遍历方法来获取你想要附加新元素的元素:。或者使用类似于.after
或.before
的函数:。花点时间浏览一下文档。这里有一个工作示例,可以让它显示一次。它不断重复,但也保持设置间隔
不变?