附加的span标签没有指定的文本

时间:2012-07-24 21:23:08

标签: javascript jquery

我正在尝试迭代已检查复选框的集合,并将每个复选框的文本附加到div作为跨度。我已经尝试使用选项标签选择它并且工作正常,但是当使用span标签时,文本似乎没有显示。

$.each(elms, function(index, value) {
    var textVal;
    textVal = $.trim($(value).parent().text());
    return $('#narrowSic').append($('<span class=label>', {
        text: textVal
    }));
});​

这是与之一起使用的HTML:

  <div id="filteredSicDiv">
        <a href="javascript: void(0)">Clear</a>
        <div id="narrowSic" class="labelParent">
                  Sic:</div>
  </div>

3 个答案:

答案 0 :(得分:3)

我相信棘手的部分,你真正想要的代码就像是注意我正在附加到主体进行调试

$(document.body).append($('<span />', {
    "text": textVal,
    "class": 'label'
}));​

请参阅http://api.jquery.com/jQuery/#jQuery2上的jQuery文档,并注意这一点:

  

传递复杂的HTML时,某些浏览器可能无法生成DOM   它完全复制了提供的HTML源代码。

所以您更新的代码段是:

$.each(elms, function(index, value) {
    var textVal = $.trim($(value).parent().text());
    return $('#narrowSic').append($('<span />', {
        "text": textVal,
        "class": 'label'
    }));
});

这假设在所有情况下,textVal的值都按预期工作。

答案 1 :(得分:2)

$.each(elms, function(index, value) { 
    var textVal; 
    textVal = $.trim($(value).parent().text()); 
    $('#narrowSic').append($('<span class=label>' + textVal + '</span>')); 
});

答案 2 :(得分:1)

您可以使用.text()功能设置文字:

$.each(elms, function(index, value) {
     var textVal;
     textVal = $.trim($(value).parent().text());
     return $('#narrowSic').append($('<span class="label">').text(textVal));
});