麻烦附加到div

时间:2012-07-11 11:07:01

标签: javascript jquery

尝试使用以下函数customizefields将div附加到另一个div,但我没有成功。控制台没有返回任何错误,所以我不知道从哪里开始?

的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);

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>

我想要实现的结果

    <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>

2 个答案:

答案 0 :(得分:0)

在我看来,您应该查看同级b标记的文本内容,而不是目前的div标记。

目前,例如,您的name var(顺便说一下,全局)的值将为“40”,而对于下一次迭代,则为“30”。

大概是你的意思

$('td div').each(function() {
    name = $(this).next('b').text();
    //more code...

答案 1 :(得分:0)

你可以尝试使用JQuery api     .before或.prepend