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

しかし見つかりません:/。クラス「ジョブグループ」でdivの値を取得する方法は?. 任意の例。

4

4 に答える 4

3

クリックした値を取得したい場合はjobgroup

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

しかし、それはテキストで変数を設定するだけで、何もしません。

編集: AJAX を介してこのコンテンツをロードしているようです。その場合、実行時にバインドすることはできませんが、.xml を使用して動的にバインドする必要があります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

機能は動作しているようです。全文を変数「name」にダンプしています。結果を確認できるように、どこかに出力したい場合があります(console.log()を使用している可能性があります)。

クリックされたフィールドを変更することもできます(現在、「listjobs」セクションに設定されています)。出力する場合は、特定のジョブグループにリンクすることができます。

コード例:

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

間違ったコンテキストを使用しています。thisはイベントであり、ではありませんdivthis.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 に答える