我有以下代码:
$(".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 - ");
没有预先发现所需的文字。
任何人都可以指出我在这里出了什么问题?
非常感谢新年快乐! 特谢拉
答案 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 - "));