如何找到调用JQuery脚本的标记 标签是动态加载的,所以不会是最后一个 页面上的标签?
我正在使用MagicSuggest autosuggest库。我想根据它们的内容给某些建议项目提供不同的背景颜色,我现在正在通过在标记中添加JQuery来实现,我将其添加到String中,返回将在选择div中呈现。然后,为了获得项目的div,我需要基本上获取标记的parent(),并更改它的css()属性。但是,如何获取当前脚本标记呢?
我目前为每个新标签分配了一个通过递增JS变量生成的id - 这可行,但不是很“好”!无论如何我可以用JQuery直接定位标签吗?
如果它可能更清楚,这是我当前的selectionRenderer函数。
selectionRenderer: function(a){
var toRet = a.english;
var blueBgScript = "<script id=ft" + freeTextFieldID + ">$('#ft" + freeTextFieldID + "').parent().css('background', 'blue');</script>"
if(a.id==a.english){
toRet += blueBgScript;
freeTextFieldID++;
}
return toRet;
},
答案 0 :(得分:0)
为什么不在afterrender
事件中添加一些代码呢?添加一些标记来标记需要不同背景的选项,然后检测父项并添加一个类(或编辑bg属性)或任何你喜欢的内容:
var newMS = $('#idStr').magicSuggest({
data: 'states.php',
displayField: 'english',
valueField: 'id',
selectionRenderer: function(a){
var toRet = a.english;
if(a.id==a.english) toRet = "<span class='freetext'>" + toRet + "</span>";
return toRet;
},
});
$(newMS).on('selectionchange', function(event,combo,selection){
var selDivs = $(event.target._valueContainer[0].parentNode).children('div'); //Get all the divs in the selction
$.each(selDivs,function(index,value){ //For each selected item
var span = $(value).children('.freetext'); //It if contains a span of class freetext
if(span.length == 1) $(value).css('background','blue'); //Turn the background blue
});