1

我有下一个代码

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

4 回答 4

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

演示

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

于 2012-10-22T06:53:17.190 回答
0

该功能似乎正在工作。您将全文转储到变量“名称”中 - 您可能希望将其输出到某个地方以便您可以看到结果(可能使用console.log())。

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

示例代码:

$('section.listjobs .jobgroup').click(function(e){
    console.log($(this).text());
});
于 2012-10-22T06:57:03.450 回答
0

您使用了错误的上下文。this是事件,而不是div。您需要选择 by this.id,这是触发事件的控件的 ID。

所以,你可以这样做:

var name = $('#' + this.id).text();
于 2012-10-22T06:57:37.580 回答
0

尝试

$('.jobgroup').click(function(){
var tmpHtml = $(this).html();
alert(tmpHtml);
});
于 2012-10-22T09:14:33.860 回答