Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 附加的跨距标记don';我没有指定文本_Javascript_Jquery - Fatal编程技术网

Javascript 附加的跨距标记don';我没有指定文本

Javascript 附加的跨距标记don';我没有指定文本,javascript,jquery,Javascript,Jquery,我试图遍历一组复选框,并将每个复选框的文本作为一个范围附加到一个div中。我曾经尝试过将选项标记设置为select,效果很好,但是当使用span标记时,文本似乎没有显示出来 $.each(elms, function(index, value) { var textVal; textVal = $.trim($(value).parent().text()); return $('#narrowSic').append($('<span class=label>

我试图遍历一组复选框,并将每个复选框的文本作为一个范围附加到一个div中。我曾经尝试过将选项标记设置为select,效果很好,但是当使用span标记时,文本似乎没有显示出来

$.each(elms, function(index, value) {
    var textVal;
    textVal = $.trim($(value).parent().text());
    return $('#narrowSic').append($('<span class=label>', {
        text: textVal
    }));
});​
$。每个(elms、函数(索引、值){
var textVal;
textVal=$.trim($(value.parent().text());
返回$('#窄带')。追加($(''){
文本:textVal
}));
});​
这是它正在使用的HTML:

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

原文如此:
$。每个(ELM、函数(索引、值){
var textVal;
textVal=$.trim($(value.parent().text());
$('#nerrowsic')。追加($(''+textVal+'');
});

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

$.each(elms, function(index, value) {
     var textVal;
     textVal = $.trim($(value).parent().text());
     return $('#narrowSic').append($('<span class="label">').text(textVal));
});
$。每个(elms、函数(索引、值){
var textVal;
textVal=$.trim($(value.parent().text());
返回$('#窄带').append($('').text(textVal));
});

我认为,对于棘手的部分,您实际需要的代码类似于我在正文中添加的注释,用于调试:

$(document.body).append($(''){
“文本”:textVal,
“类别”:“标签”
}));​
请参阅中的jQuery文档,并注意以下注意事项:

当传入复杂的HTML时,某些浏览器可能不会生成DOM 它完全复制了提供的HTML源代码

因此,您更新的代码段是:

$.each(elms, function(index, value) {
    var textVal = $.trim($(value).parent().text());
    return $('#narrowSic').append($('<span />', {
        "text": textVal,
        "class": 'label'
    }));
});
$。每个(elms、函数(索引、值){
var textVal=$.trim($(value.parent().text());
返回$('#窄带')。追加($(''){
“文本”:textVal,
“类别”:“标签”
}));
});

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

使用完整的标记,
$(“”
你能发布你正在使用的HTML吗?@KevinB我添加了标记的结束部分,但是我仍然得到span元素,没有任何文本更新了HTMLI的初始帖子。我认为不再支持
文本
。我尝试了royh的答案,它成功了,但这更接近我的想法。谢谢!@SCS Cool.the一般原则是在使用jQuery构建元素时。从一个裸标记开始,然后构建它,无论是使用您所做的参数,还是使用标准的
text()
css()
attr()
机制,然后追加。这样更简单、更兼容。
$(document.body).append($('<span />', {
    "text": textVal,
    "class": 'label'
}));​
$.each(elms, function(index, value) {
    var textVal = $.trim($(value).parent().text());
    return $('#narrowSic').append($('<span />', {
        "text": textVal,
        "class": 'label'
    }));
});