在.click函数jQuery与内容动态之后获取值jQuery

时间:2012-10-22 06:50:35

标签: jquery html

我有下一个代码

HTML

<section class="listjobs" style="display: block;">
<div class="jobgroup GigaLab">GigaLab</div>
<div class="jobgroup CraftedContours">CraftedContours</div>
<div class="jobgroup FunPuntos">FunPuntos</div>
<div class="jobgroup Lexplique,LLC">Lexplique,LLC</div>
<div class="jobgroup Arriendas.cl">Arriendas.cl</div>
<div class="jobgroup Scholaroo.com">Scholaroo.com</div>
<div class="jobgroup OctaneNation">OctaneNation</div>
<div class="jobgroup Loogares.com">Loogares.com</div>
<div class="jobgroup AgentPiggy">AgentPiggy</div>
<div class="jobgroup AgentPiggy">AgentPiggy</div>
</section>

这是我的jQuery。

        (function($){

    $('#searchjob').keypress(function(e){
        var search = $.trim($(this).val());

        if (e.which == "13") {

            $.ajax({
                beforeSend: function(){
                    //$('#loading').html(<img src="rutagif" alt="loading" />);
                },
                url:"../wp-admin/admin-ajax.php",
                data:{ action: 'searching_job',data : search },
                //dataType: "json",
                type: "POST",
                success: function(data){
                    var jsonresult = JSON.parse(data);
                    var jobs = $('.listjobs');
                    var startups = [];

                    $.each(jsonresult, function(i, item){
                        startups.push(jsonresult[i].meta_value);
                    });

                    startups = $.unique(startups);

                    //console.log(startups);

                    jobs.hide().empty();

                    $.each(startups, function(i, item){
                        var startup = startups[i].replace(" ","");
                        jobs.append("<div id='"+startup+"'class='jobgroup'><h2>"+startups[i]+"</h2><p></p></div>").slideDown();
                    });

                }

            });

            e.preventDefault();

        };

    });

找不到此代码

    $(this).click(function(e){
        console.log($(this).text());
    });

也可以尝试使用$('。lisjobs'),这会显示警报但不会获取数据,也可以尝试使用$('section.listjobs .jobgroup'),$('。jobgroup')而未找到。还有其他想法吗?

 })(jQuery);

但未找到:/。如何用类“jobgroup”获取div的值?任何例子。

4 个答案:

答案 0 :(得分:3)

如果您想获得所点击jobgroup的价值

$('section.listjobs .jobgroup').click(function(e){
    var name = $(this).text();
    /* Do something with "name" here */
});

但是这只是用文本设置一个变量,它对它没有任何作用。

编辑:看起来您通过AJAX加载此内容,在这种情况下,您无法在运行时绑定它们,但需要使用on()动态绑定它们。此代码假设section.listjobs未通过AJAX加载。

$('section.listjobs').on('click', '.jobgroup', function(e){
    var name = $(this).text();
    /* Do something with "name" here */
});

DEMO

您也可以使用第一种方法绑定它们,但是在元素添加到DOM之后,即在ajax success函数的末尾,您需要运行该脚本。我仍然会使用on()

答案 1 :(得分:0)

该功能似乎有效。您正在将全文转储到变量“name”中 - 您可能希望将其输出到某处以便可以看到结果(可能使用 console.log())。

您可能还想更改单击的字段 - 目前您已将其设置为“listjobs”部分 - 如果要输出,则可以将其链接到特定的作业组。

示例代码:

$('section.listjobs .jobgroup').click(function(e){
    console.log($(this).text());
});

答案 2 :(得分:0)

您使用的是错误的上下文。 this是事件,而不是div。您需要按this.id选择,var name = $('#' + this.id).text(); 是触发事件的控件的ID。

所以,你可以这样做:

{{1}}

答案 3 :(得分:0)

尝试

$('.jobgroup').click(function(){
var tmpHtml = $(this).html();
alert(tmpHtml);
});