jQuery选择器通配符映射未知变量

jQuery选择器通配符映射未知变量,jquery,selector,wildcard-mapping,Jquery,Selector,Wildcard Mapping,HTML <select id="edit-attributes-1"></select> <select id="edit-attributes-2"></select> <select id="edit-attributes-3"></select> <select id="edit-attributes-4"></select> 结果 <select id="edit-attribute

HTML

<select id="edit-attributes-1"></select>
<select id="edit-attributes-2"></select>
<select id="edit-attributes-3"></select>
<select id="edit-attributes-4"></select>
结果

<select id="edit-attributes-1"></select>
   <span class="step stepdown step-**unknown**">+</span>
<select id="edit-attributes-2"></select>
   <span class="step stepdown step-**unknown**">+</span>
<select id="edit-attributes-3"></select>
   <span class="step stepdown step-**unknown**">+</span>
<select id="edit-attributes-4"></select>
   <span class="step stepdown step-**unknown**">+</span>
<select id="edit-attributes-1"></select>
   <span class="step stepdown step-**edit-attributes-1**">+</span>
<select id="edit-attributes-2"></select>
   <span class="step stepdown step-**edit-attributes-2**">+</span>
<select id="edit-attributes-3"></select>
   <span class="step stepdown step-**edit-attributes-3**">+</span>
<select id="edit-attributes-4"></select>
   <span class="step stepdown step-**edit-attributes-4**">+</span>

+
+
+
+
正如您所看到的,$(this).attr('id')的部分是未知的

期望的结果

<select id="edit-attributes-1"></select>
   <span class="step stepdown step-**unknown**">+</span>
<select id="edit-attributes-2"></select>
   <span class="step stepdown step-**unknown**">+</span>
<select id="edit-attributes-3"></select>
   <span class="step stepdown step-**unknown**">+</span>
<select id="edit-attributes-4"></select>
   <span class="step stepdown step-**unknown**">+</span>
<select id="edit-attributes-1"></select>
   <span class="step stepdown step-**edit-attributes-1**">+</span>
<select id="edit-attributes-2"></select>
   <span class="step stepdown step-**edit-attributes-2**">+</span>
<select id="edit-attributes-3"></select>
   <span class="step stepdown step-**edit-attributes-3**">+</span>
<select id="edit-attributes-4"></select>
   <span class="step stepdown step-**edit-attributes-4**">+</span>

+
+
+
+

我不知道如何实现这种概念,或者请提供一种最佳的简化方法。

您的代码中的此
并不指您选择的元素,您可以在之后使用
的功能:

$('select[id^="edit-attributes-"][id!="edit-attributes-12"]').after(function(ind){
   return '<span class="step stepdown step-'+ this.id +'">+</span>'
}); 
$('select[id^=“edit attributes-”][id!=“edit-attributes-12”]”)。在(函数(ind)之后{
返回'+'
}); 
请尝试以下代码:

 $('select[id^="edit-attributes-"][id!="edit-attributes-12"]').each(function () {
    var this_selection = $(this);
    var selection_id = this_selection.attr('id');
    this_selection.after('<span class="step stepdown step-' + selection_id + '"></span>');  
 });
$('select[id^=“edit attributes-”][id!=“edit-attributes-12”]”)。每个(函数(){
var this_selection=$(this);
var selection_id=此_selection.attr('id');
此选项在(“”)之后;
});

使用此选项必须有上下文。。您在哪里调用它?最好使用$('select[id^=“edit-attributes-”)。不要('id=“edit-attributes-12”]),因为它比JSFIDLE中的$('select[id^=“edit-attributes-”][id!=“edit-attributes-12”])快。这里没有函数(ind,但您有它。这是jQuery集合中所选元素的
索引,可选。谢谢Brian,你的代码可读性更好,所以我正在寻找一个较短的代码,但我不确定哪一个是最好的,我试图使我的代码尽可能可读,但我只是向你展示了其中的思考过程。从性能的角度来看,Short更好。我只是想确定你知道发生了什么。