jquery + prepend文本不起作用

时间:2010-01-08 10:38:18

标签: jquery

我有以下代码:


$(".preview").find("#panel").each(function(i, val) {
    var x = "" + $(val).html();
    $(x).find(".dmPageHeadline").prepend(" 1 - ");
    console.log($(x).html());
    html += $(x).html();
});

此代码遍历所有折叠面板,连接其内容并在标题中添加“1 - ”(类“dmPageHeadline”)。 可能这是一个简单的细节,但我无法弄清楚......这一行

$(x).find(".dmPageHeadline").prepend(" 1 - ");
没有预先发现所需的文字。

任何人都可以指出我在这里出了什么问题?

非常感谢新年快乐! 特谢拉

2 个答案:

答案 0 :(得分:2)

在您的代码中,您有#panel,并且您说您正在循环使用它们......但情况并非如此,ID 需要唯一,否则您会得到各种奇怪或不存在的行为。

而是为元素class="panel"而不是id="panel"。至于jQuery方面,你可以简化为:

$(".preview .panel .dmPageHeadline").prepend(" 1 - ");​

Here's a working example of this in action

如果您希望索引能够攀升,那么请执行以下操作:

$(".preview .panel .dmPageHeadline").each(function(i) {
  $(this).prepend(" " + i + " - "); //maybe (i+1) if you want 1 and not 0 first.
});

.prepend() function可以取一个字符串,这就像你前面的方式有点奇怪:)

答案 1 :(得分:1)

因为prepend需要HTML,CSS选择器,DOM Node或jQuery对象。试试这个:

$(x).find(".dmPageHeadline").prepend (document.createTextNode(" 1 - "));