JQuery获取调用<脚本>标签

JQuery get calling <script> tag when dynamically loaded

本文关键字:脚本 gt 标签 lt 获取 调用 JQuery      更新时间:2023-09-26

当标签是动态加载的,所以不会是最后一个标签?

我正在使用MagicSuggest自动建议库。我想根据某些建议项目的内容为其提供不同的背景色,我目前正在通过在标记中添加JQuery来实现这一点,我正在将JQuery添加到String中,该String将返回到selectdiv中进行渲染。然后,要获得建议项目所在的div,我需要基本上获得标记的parent(),并更改其css()属性。但是,如何获取当前的脚本标记?

我目前为每个新标签分配了一个通过增加JS变量生成的id,这很有效,但不是很"好"!我是否可以用JQuery直接定位标签?

如果它可能会让它更清晰,下面是我当前选择的Renderer函数。

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
    });