使用jQuery在元素内部而不是之后插入值

使用jQuery在元素内部而不是之后插入值,jquery,jquery-selectors,Jquery,Jquery Selectors,我使用jQuery计算链接文档的文件大小,使用下面的代码段。代码会在a元素之后插入封装在span元素中的信息。我想把它插入到a元素的值中。这可能吗 谢谢 js(来源:) 功能HDR详细信息(i、elm、cl){ cl=cl/1024;//将内容长度除以1024(KB) var sz=cl>1024?“MB”:“KB”//如果cl仍然很大,则设置为MB cl=cl>1024?cl/1024:cl;//如果cl仍然很大,请再次除以 var len=$(elm).eq(i).text().lengt

我使用jQuery计算链接文档的文件大小,使用下面的代码段。代码会在a元素之后插入封装在span元素中的信息。我想把它插入到a元素的值中。这可能吗

谢谢

js(来源:)


功能HDR详细信息(i、elm、cl){
cl=cl/1024;//将内容长度除以1024(KB)
var sz=cl>1024?“MB”:“KB”//如果cl仍然很大,则设置为MB
cl=cl>1024?cl/1024:cl;//如果cl仍然很大,请再次除以
var len=$(elm).eq(i).text().length;//检查链接的文本长度
如果(len>0){
//添加文件大小
$(elm).eq(i).在(“(“+cl.toFixed(2)+”“+sz+”)之后;
}
}
$(函数(){
var elm=“a[href$=”.pdf'],“+//仅限我们需要的文件类型
“a[href$='.doc'],”+
“a[href$='.ppt'],”+
“a[href$='.xls']”+
“a[href$='.docx'],”+//不要忘记2007版本
“a[href$='.pptx'],”+
“a[href$='.mht'],”+
“a[href$='.xlsx']”;
$(elm)。每个(功能(即,e){
if(e.hostname&&e.hostname==location.hostname){
$.ajax({
类型:“头”,
url:$(this.attr(“href”),
完成:功能(xhr、textStatus){
var cl=xhr.getResponseHeader(“内容长度”);
如果(textStatus==“成功”){
var cl=xhr.getResponseHeader(“内容长度”);
hdrDetails(i,elm,cl);//调用计算fn
}否则{
$(elm).eq(i).after(“(未找到文件)”);
}
}
});
}
});
});
正在启动HTML:

<a href="ms0778.01.01.pdf" target="_blank" title="Anti-Defamation League of B’nai B’rith. 1966,1975.">[Digital Archival Object]</a>

在现有js之后:

<a href="ms0778.01.01.pdf" target="_blank" title="Anti-Defamation League of B’nai B’rith. 1966,1975.">[Digital Archival Object]</a><span> (1.49 MB)</span>
(1.49 MB)
期望的影响:

<a href="ms0778.01.01.pdf" target="_blank" title="Anti-Defamation League of B’nai B’rith. 1966,1975.">[Digital Archival Object <span>(1.49 MB)</span>]</a>

您可以使用此选项插入链接最后一个字符之前的文本:

var $e = $(elm).eq(i);
var t = $e.text();
$e.html(t.slice(0, -1)+"<span> ("+cl.toFixed(2)+" "+sz+")</span>"+t.slice(-1));
var$e=$(elm).eq(i);
var t=$e.text();
$e.html(t.slice(0,-1)+”(“+cl.toFixed(2)+“+sz+”)+t.slice(-1));

+1我们中唯一看到
]
的人!但是使用
text
获取内容和
html
设置内容的不对称性让我感到困扰。@T.J.Crowder当然它假设a元素中没有其他标记。我们可以在这两种情况下都使用html,但这可能会导致糟糕的html。我的解决方案只能删除一些元素,不能断开链接。@谢谢!这几乎做到了。结果有点怪。发生的情况如下:
@Nathan它似乎对我有效:(注意,在几秒钟内,一个索引不好的版本就出现了,可能是你当时复制了我的代码)。@dystroy肯定是这样,它现在起作用了。非常感谢。
var $e = $(elm).eq(i);
var t = $e.text();
$e.html(t.slice(0, -1)+"<span> ("+cl.toFixed(2)+" "+sz+")</span>"+t.slice(-1));