addClass到变量并附加jQuery

时间:2013-10-21 02:35:53

标签: javascript jquery append addclass var

尝试将类添加到变量然后将其附加到另一个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);
});

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

2 个答案:

答案 0 :(得分:1)

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

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

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);
});

答案 1 :(得分:0)

首先,我假设我们正在使用您在操作注释中提供的格式的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>"

希望这有所帮助,我试图解释一些步骤,因为我不确定你所做的事情在哪里偏离。