JQuery将文本附加到当前标签

时间:2016-04-14 13:45:01

标签: javascript jquery parent traversal

我有动态代码,可根据返回的结果数创建标签。我现在的问题是,我想在选项卡标题上添加勾号,但我无法遍历<li><a href&gt;我需要附加勾号(附加到<a href>)。我尝试了很多.parent().find(),但我似乎无法理解这一点。我错过了什么(毫无疑问,这很简单!)

function getData() {
$.getJSON("getQuestions.asp?sup="+dataVal1+"&prod="+dataVal2, function(data){})
    .done(function(data){               
        html = '<div class="center">Supplier: '+suppName+'</div><div class="center">'
        html += 'Part No &amp; Description: '+partCode+' - '+partName+'</div><ul>'
        var len = data.length;  
        for (var i = 0; i< len; i++) {
            html += '<li><a href="#q'+data[i].id+'">'+data[i].shortdesc+'</a></li>'
        }
        html += '</ul>'
        for (var i = 0; i< len; i++) {
            html += '<div id="q'+data[i].id+'">'+data[i].question
            html += '<fieldset><legend>Question '+parseInt(i+1)+'</legend>'
            if (data[i].evidence == '1') {
                html += '<iframe id="upload" frameborder="0" width="500" scrolling="no" src="upload.asp?supp='+suppCode+'&part='+partCode+'&q='+data[i].shortdesc+'"></iframe>'
                console.log(data[i].shortdesc)
            } else {
                html += '<div class="yesno" data-desc="'+data[i].shortdesc+'"><span class="btn small" id="yes" >YES</span>&nbsp;<span class="btn small" id="no">NO</span></div>'
            }
            html +='</fieldset></div>'
        }

        $('#output').html(html);
        $( "#output" ).tabs();
    }); 
};

我已经彻底搜索过这个问题,但我可能无法找到其他地方的确切解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用标签事件来执行此操作。您可以在那里找到锚标记。

    function getData() {
$.getJSON("getQuestions.asp?sup="+dataVal1+"&prod="+dataVal2, function(data){})
    .done(function(data){               
        html = '<div class="center">Supplier: '+suppName+'</div><div class="center">'
        html += 'Part No &amp; Description: '+partCode+' - '+partName+'</div><ul>'
        var len = data.length;  
        for (var i = 0; i< len; i++) {
            html += '<li><a id="tab_"'+ i +' href="#q'+data[i].id+'">'+data[i].shortdesc+'</a></li>'
        }
        html += '</ul>'
        for (var i = 0; i< len; i++) {
            html += '<div id="q'+data[i].id+'">'+data[i].question
            html += '<fieldset><legend>Question '+parseInt(i+1)+'</legend>'
            if (data[i].evidence == '1') {
                html += '<iframe id="upload" frameborder="0" width="500" scrolling="no" src="upload.asp?supp='+suppCode+'&part='+partCode+'&q='+data[i].shortdesc+'"></iframe>'
                console.log(data[i].shortdesc)
            } else {
                html += '<div class="yesno" data-desc="'+data[i].shortdesc+'"><span class="btn small" id="yes" >YES</span>&nbsp;<span class="btn small" id="no">NO</span></div>'
            }
            html +='</fieldset></div>'
        }

        $('#output').html(html);
        $( "#output" ).tabs();
    }); 
};

    $( "#output" ).tabs({
                activate : function(event, ui){

                    var tab_index = ui.newTab.index();
                    var anchor_tag = ui.newTab.children("a");
                    var anchor_tag_id = anchor_tag.attr("id");

                    localStorage.setItem("active_tab_anchor", anchor_tag_id);
                }
    });

    $('#answer_event').on('click', function(){
            var anchor_tag_id = localStorage.getItem("active_tab_anchor");
        var anchor_tag = $('#'+anchor_tag_id);
        var href = anchor_tag.attr("href");
        href += href + 'tick';
        anchor_tag.attr('href', href);
    });

这取决于你何时想要附加勾号。

检查此处的事件:http://api.jqueryui.com/tabs/