2014-03-01 112 views
0

好了 - 所以这可能很简单,但我很新的东西HTML和CSS之外,所以我认为这是一次我问:)jQuery - 将属性添加到另一个属性?

所以我想要做的是从一个新的属性取内容物并将其添加到href属性。

我有什么:

<div id="testDiv"> 
    <a href="" newAttr="12345">LINK</a> 
</div> 

$('#testDiv a').attr('href',newAttr+'.extension'); 

而且我想要的结果是:

<div id="testDiv"> 
    <a href="12345.extension" newAttr="12345">LINK</a> 
</div> 

我缺少的东西真的很明显这里还是我英里远?

任何帮助将是伟大的!

感谢, 尼克

*编辑 - 我错过了在这个岗位等号,而不是我的实际代码 - 新秀:)

回答

3

您还可以使用attr()得到一个属性的值:

$('#testDiv a').attr('href', function (i, attr) { 
    return $(this).attr('newAttr') + '.extension' 
}); 

顺便说一句,你就错过=你的HTML标记内:

<a href="12345.extension" newAttr="12345">LINK</a> 
// -----------------------------^here 

Fiddle Demo


编辑:i是你的锚在里面设置的div美女主播与ID testDiv的索引位置,所以你的情况这将是0因为只有一个锚定在那里。在这种情况下,i不是强制性的,因为您根本不需要使用它。

另一方面,attr将返回您锚点的旧值href。也没有在这里需要这一个,因为你需要newAttr不是href值的值,所以实际上你可以留下他们两个空白:

$('#testDiv a').attr('href', function() { 
    return $(this).attr('newAttr') + '.extension' 
});  
+0

感谢您的答复 - 出于某种原因,它只是回来为未定义。 – Nick

+0

你检查了我的演示吗? – Felix

+0

似乎现在工作 - 你能告诉我什么(我,val)的意思。或(我,attr)和为什么'我'实际上需要?因为它似乎只与(attr)一起工作吗? – Nick

0

你不只是缺少了用newAttr等号?

<div id="testDiv"> 
    <a href="12345.extension" newAttr"12345">LINK</a> 
</div> 

应该

<div id="testDiv"> 
    <a href="12345.extension" newAttr="12345">LINK</a> 
</div>