web-dev-qa-db-ja.com

jQuery:変数をセレクターとして使用する

アクションを実行したい段落のセレクターとして変数を使用すると問題が発生します。具体的には、いくつかのタイトル要素と同じ数の段落があります。望ましい結果は、Title1をクリックすると、paragraph1でアクションを実行することです。開発目的で簡単なケースを作成しました。タイトルをクリックすると、対応する段落のテキストの色が変わります。ソリューションをハードコーディングすると動作しますが、セレクターが失敗すると変数を渡します。

JQueryは次のとおりです。

    jQuery(document).ready(function($){
       $(this).click(function(){

        var target=(event.target.id);// Get the id of the title on which we clicked. We will extract the number from this and use it to create a new id for the section we want to open.
        alert(target);// checking that we are getting the right value.
        var openaddress=target.replace(/click/gi, "section");//create the new id for the section we want to open.
        alert('"#'+openaddress+'"');//Confirm that the correct ID has been created
        $('"#'+openaddress+'"').css( "color", "green" );//get the id of the click element and set it as a variable.
        //$("#section1").css( "color", "green" );//Test to confirm that hard coded selector functions correctly.

            return false;// Suppress the action on the anchor link.
            });


    });

アラートは次の変数を返します alert returned showing the value of the variable これは正しく表示され、ハードコードされたバージョンと一致します。 htmlはハードコーディングされたバージョンで動作するため、このHTMLは省略しました。

私が間違っていることとそれを修正する方法に関するガイダンスをいただければ幸いです。

ありがとう

54
dorich

あなたは複雑すぎると考えています。実際には$('#'+openaddress)です。

152
Jan Krüger