0

尝试将类添加到变量然后将其附加到另一个 div 时,我遇到了一些问题。当我这样做时,文本出现但没有我试图添加到它的类。我正在使用 jQuery 完成所有这些工作。

这是代码:

var names = $(this).attr('name');
var description = $(this).attr('description');
var url = $(this).attr('url');

$(names).addClass("nam");


$(div1).append( names + " " + description + " " + url);
});

我想我做错了什么,但看不到哪里。

4

2 回答 2

1

您正在为其创建一个 jQuery 包装器name并向其添加一个类,但随后您将附加上一个字符串引用,而不是添加该类的 jQuery 包装器。

此外,您不能将类添加到文本节点,因此请尝试用 span 元素包装它(如果name不是 html 内容,例如<span>some name</span>

var names = $('<span />', {
    text : $(this).attr('name'),
    'class' : 'nam'
})
var description = $(this).attr('description');
var url = $(this).attr('url');


$(div1).append( names).append( " " + description + " " + url);
});
于 2013-10-21T02:41:08.093 回答
0

首先,对于这个答案,我假设我们使用的是您在对 op 的评论中提供的格式的 xml 字符串。注意 - 我确实更正了字符串的语法以删除无关的分号。

var xmlstring = '<Blogs> <blog name="number1" description="1" url=" 1.com/"/> <blog name="number2" description="2" url="2.com/"/> <blog name="number3" description="3" url="3.com;" />" </Blogs>'

现在我们可以按预期将此字符串解析为 jQuery 对象,并按预期使用:
var $doc = $($.parseXML(xmlstring));

我假设在您的原始示例中,this博客指的是这些子博客之一,所以我将针对我的示例说:

var $this = $doc.find("blog:eq(2)");//the blog name=number3 in your example 
//OR
var $this = $(this);//useful so we dont keep rewrapping

好的,现在我们有了我们的博客 ( $this),我们可以将内容附加到div1如下:

var names = $("<span>", {text:$this.attr('name'), 'class': 'nam'});
var description = $this.attr('description');
var url = $this.attr('url');

$(div1).append( names, description + " " + url);//as names is a span element

我在一个空的 div 上对此进行了测试,它产生了以下 outerhtml:
"<div><span class="nam">number3</span>3 3.com;</div>"

希望这会有所帮助,我试图解释步骤,因为我不确定你在做什么偏离了。

于 2013-10-21T20:43:37.620 回答