有人知道如何使用jQuery为孩子提供XML和自动ID吗?
这样它就可以用来识别那个孩子
例如,如果我有像这样的xml
<parent>
<child title="test"/>
<child title="test"/>
</parent>
然后在HTML中它将被编译为看起来像这样
<p id=1>test</p>
<p id=2>test</p>
这是我使用jquery
function Template(xml) {
$(xml).find('parent').each(function () {
var body = $('body').addClass('nobg');
$(xml).find('child').each(function() {
var count = 1;
if ($(this).attr('title') > '') {
var title = $('<p></p>').appendTo(body);
headline.attr('id'), (count++));
}
})
})
}
正如您所看到的那样,它只是在字段
中放置一个id为1答案 0 :(得分:2)
我相信这是你正在寻找的。 p>
我移动了count
的声明,并将titleText添加到新段落中。
function Template(xml) {
var count = 1;
$(xml).find('parent').each(function () {
var body = $('body').addClass('nobg');
$(xml).find('child').each(function() {
var titleText = $(this).attr('title');
if (titleText.length > 0) {
var title = $('<p></p>').appendTo(body);
title.append(titleText);
headline.attr('id', (count++));
}
})
})
}
修改:修复了A Wolff确定的问题
答案 1 :(得分:0)
count
的范围只是您正在处理的单个孩子。将其移至更高的范围:
$(xml).find('parent').each(function () {
var body = $('body').addClass('nobg');
var count = 1;
$(xml).find('child').each(function() {
if ($(this).attr('title') > '') {
var title = $('<p></p>').appendTo(body);
headline.attr('id'), (count++));
}
})
})
另外,为了安全起见,我会将count++
替换为++count
,因为您需要在{{1}}之前使用它来递增。不过,在您的情况下,这是纯粹的可读性。
答案 2 :(得分:0)
使用前缀++计数。它首先递增
function Template(xml) {
$(xml).find('parent').each(function () {
var body = $('body').addClass('nobg');
$(xml).find('child').each(function() {
var count = 1;
if ($(this).attr('title') > '') {
var title = $('<p></p>').appendTo(body);
headline.attr('id'), (++count));
}
})
})
}