如果要多次使用它们,则应始终在变量中缓存带有慢速选择器的 jQuery 对象。所以我将它缓存在一个名为$els
. 然后我做了一个调整,因为attr只返回第一个匹配元素的属性,而text返回一个字符串而不是字符串数组。我使用map创建一个包含所需值的 jQuery 对象,然后使用get将该 jQuery 对象转换为数组:
$('a#exportPage').on('click',function(){
var $els = $('[id^="appendHeading"]');
ExportIds = $els.map(function(){
return this.id;
}).get();
ExportTexts = $els.map(function(){
return $(this).text();
}).get();
$("#PrintIds").append("ObjectID:"+ExportIds+"Content:"+ExportTexts);
});
如果您尝试输出每个 id、文本对而不是所有 id 后跟所有文本,您可能希望像这样进一步重写它:
$('a#exportPage').on('click',function(){
var textMap = {};
$('[id^="appendHeading"]').each(function(){
textMap[this.id] = $(this).text();
});
for(id in textMap)
$("#PrintIds").append("ObjectID:" + id + "Content:" + textMap[id]);
});
甚至:
$('a#exportPage').on('click',function(){
$('[id^="appendHeading"]').each(function(){
$("#PrintIds").append("ObjectID:" + this.id + "Content:" + $(this).text());
});
});