在什么情况下,如何找到调用JQuery脚本的标签?
标签是动态加载的,因此不会是最后一个
在页面上标记?
我正在使用MagicSuggest自动建议库。我想根据内容的不同,为某些建议项提供不同的背景颜色,我目前正在通过在标签内添加JQuery来实现这一目的,然后将其添加到String上,该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;
},
最佳答案
为什么不在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
});
关于javascript - 动态加载时,jQuery获取调用<script>标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239201/