0

我有一个 php 代码,它显示来自 AZ 的按钮:

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

现在这工作正常,但我有一个问题。如果你看 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

Javascript 使用 + 运算符str='over'+'flow'; 连接字符串,PHP 使用 . 运算符 $str='over'.'flow'; 因此在您的 jquery 中它可以是:.attr('id', this.id+'ROW')

于 2012-07-09T14:04:14.303 回答
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 回答