0

私はそれがAZからのボタンを表示するphpコードを持っています:

  <table id="optionAndAnswer" class="optionAndAnswer">
    <tr class="answer">
    <td>3. Answer</td>
    <td>
        <?php
            $a = range("A","Z");
        ?>

        <table id="answerSection">
            <tr>

        <?php
            $i = 1;
            foreach($a as $key => $val){
                if($i%7 == 1) echo"<tr><td>";
                echo"<input type=\"button\" onclick=\"btnclick(this);\" value=\"$val\" id=\"answer".$val."\" name=\"answer".$val."Name\" class=\"answerBtns answers answerBtnsOff\">";      
                if($i%7 == 0) echo"</td></tr>";
                $i++;
            }
        ?>

...

私がやろうとしているのは、jqueryで上記のコードのテンプレートを作成して、ユーザーがこれらのボタンをブロックに追加したい場合に、jqueryを使用してこれらのボタンをテンプレートとまったく同じようにブロックに追加できるようにすることです。

以下はjqueryコードです:

var $this, i=0, $row, $cell;
$('#optionAndAnswer .answers').each(function() {
    $this = $(this);
    if(i%7 == 0) {
        $row = $("<tr/>").appendTo($answer);
        $cell = $("<td/>").appendTo($row);
    }
    var $newBtn = $("<input class='answerBtnsRow answers' type='button' style='display:%s;' onclick='btnclick(this);' />".replace('%s',$this.is(':visible')?'inline-block':'none')).attr('name', $this.attr('name')).attr('value', $this.val()).attr('class', $this.attr('class'));


    $newBtn.appendTo($cell);

    i++;
});

これで問題なく動作しますが、問題が1つあります。phpコードを見ると、各ボタンには独自のIDがありますが、私のjqueryコードでは、各ボタンに独自のIDはありません。私のjqueryコードでは、各ボタンにphpコードの対応するボタンと同じIDを持たせたいと思っていますが、違いはjqueryボタンのIDを「Row」で終わらせたいということだけです。たとえば、phpのボタンFのidがである場合#answerF、jqueryのボタンFにidを持たせたいと思います#answerFRow

私の質問は、これは可能ですか?このコードをjqueryコードに入れると、phpコードからボタンIDを取得できますか?

.attr('id', $this.attr('id'))

そして、最後に「行」という単語を挿入するにはどうすればよいですか?

4

3 に答える 3

0
.attr('id', $this.attr('id')+'Row')

PHPは、ブラウザが読み取ってレンダリングするテキストHTMLを生成するだけです。したがって、PHPコードがIDを書き込む場合、jQueryはそれらを読み取ることができます。

于 2012-07-09T13:48:13.630 に答える
0

最良の方法は、phpオブジェクトからjavascript配列オブジェクトを作成し、この配列オブジェクトを使用してIDを取得することです。

lang=new Object();
<? foreach($a as $key=>$value){ ?>
  lang[<?=$key?>] ='<?=$value?>' 
<? } ?>

これで、このJavaスクリプトオブジェクト「lang」を使用してkeyValuesを取得できます。

于 2012-07-09T13:49:17.687 に答える
0

Javascriptは+演算子で文字str='over'+'flow'; 列を結合し、PHPは。で文字列を結合します。$str='over'.'flow'; したがって、jqueryでは次のようになります。 .attr('id', this.id+'ROW')

于 2012-07-09T14:04:14.303 に答える