Javascript jQuery |当存在多个相同ID时显示值

Javascript jQuery |当存在多个相同ID时显示值,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个jQuery函数(如下所示: )我有多个具有相同ID的属性,这意味着我需要获取函数以允许进行多个更改,最好的方法是什么? 此外,我还希望将新值添加到showdynamicreturn区域中显示的值中,对于键入的每个值,我该如何操作 示例 1) 用户输入1-返回f2 2) 用户输入2-返回4 显示在showdynamicreturn-6中 此处的HTML代码 1:55斯科茨维尔-胜利 运动: 赛马 参与者: 传奇舞者 市场: 斯科茨维尔 时间: 13:55 可能性: 8/1 桩号: £

我有一个jQuery函数(如下所示:

)我有多个具有相同ID的属性,这意味着我需要获取函数以允许进行多个更改,最好的方法是什么?
此外,我还希望将新值添加到
showdynamicreturn
区域中显示的值中,对于键入的每个值,我该如何操作

示例
1) 用户输入1-返回f2
2) 用户输入2-返回4
显示在
showdynamicreturn
-6中

此处的HTML代码


1:55斯科茨维尔-胜利
运动:
赛马
参与者:
传奇舞者
市场:
斯科茨维尔
时间:
13:55
可能性:
8/1
桩号:
£
双向赌?
生成代码:

public函数ReadBets\u Bet($id,$currentpage,$loggedIn=true){
$queryBase=“从'vr\u wp\u bets'中选择*,其中'id`='%s'和'is\u open`='false'由'sport`ASC;”;
如果($loggedIn==true){
$queryBase2=sprintf($queryBase,$id);
}
否则{
$queryBase2=sprintf($queryBase,$id);
}
$selectQuery=mysql\u查询($queryBase2);
$return=“”;
而($result=mysql\u fetch\u数组($selectQuery)){
$_赔率=爆炸(“/”,$结果['赔率]);
$赔率=$\赔率[0]/$\赔率[1];
$return.=“”;
$return.=''.$result['title'].'';
$return.=“”;
$return.=“”;
$return.=“运动:”.$result['Sport']。”;
$return.=“参与者:.stripslashes($result['Participant'])”;
$return.=“市场:.stripslashes($result['Market'])”;
$return.=“Time:.date(“H:i”,strottime($result['bettilltime']))”;
$return.=“赔率:”.$result[“赔率]”;
$return.=“股份:£;”;
如果($result['ew_available']==“true”){
$return.=“双向下注?”;
}
否则{
$return.=“”;
}
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“”;
$return.=“
”; } $return.=“”; $return.=“£;”; //$return.=$queryBase2; return$return; }
注意
由于客户的需要和要求,使用了mysql_*函数(是的,我知道已折旧)

编辑

我现在拥有的jQuery:

var count_div = 0;
$(this).ready(function () {
    $("div").each(function () {
        ++count_div;
        console.log("Counter: " + count_div);
    });

    for (var i = 0; i < count_div; ++i) {
        $("#stake-" + i).each(function () {
            console.log("Found stake " + i);
        });
    }

    for (var i = 0; i < count_div; ++i) {
        $("#__odds-" + i).each(function () {
            console.log("Found stake " + i);
        });
    }
    $("#showdynamicreturn").each(function () {
        console.log("Found text area");
    });

    for (var i = 0; i < count_div; ++i) {
        $("#stake-" + i).on('keyup', function () {
            var newVal = (parseFloat($("#stake-" + i).val(), 10) * parseFloat($("#__odds-" + i).val(), 10)) + parseFloat($("#stake-" + i).val(), 10) || 0;
            $("#showdynamicreturn").val(parseFloat(newVal).toFixed(2));
        });
    }
});
var count\u div=0;
$(this).ready(函数(){
$(“div”)。每个(函数){
++统计处;
控制台日志(“计数器:+count\u div);
});
对于(变量i=0;i
您不能这样做,因为ID在树()中必须是唯一的

当存在重复ID时(大多数浏览器都允许),它们的返回顺序充其量是未定义的,充其量只能检索单个元素

最简单的解决方案应该适用于您的代码,就是在ID上附加一个数字后缀以强制唯一性。您可以使用数据中已经存在的唯一标识符,或者,如果您有一个循环,只需保留一个计数器并将其附加到一个固定字符串中即可<代码>foo-1将比多个
foo
s工作得更好

对于数字ID,您需要修改jQ函数,使其类似于:

var items = 100;
$(this).ready(function () {
  for (var i = 0; i < items; ++i) {
    $("#stake-" + i).on('keyup', function () {
      var newVal = (parseFloat($("#stake-" + i).val(), 10) * parseFloat($('#__odds').val(), 10)) + parseFloat($("#stake-" + i).val(), 10) || 0;
      $("#showdynamicreturn-" + i).val(parseFloat(newVal).toFixed(2));
    });
  }
});
var项目=100;
$(this).ready(函数(){
对于(变量i=0;i
您不能这样做,因为ID在树()中必须是唯一的

当存在重复ID时(大多数浏览器都允许),它们的返回顺序充其量是未定义的,充其量只能检索单个元素

最简单的解决方案应该适用于您的代码,就是在ID上附加一个数字后缀以强制唯一性。您可以使用数据中已经存在的唯一标识符,或者,如果您有一个循环,只需保留一个计数器并将其附加到一个固定字符串中即可<代码>foo-1将比多个
fo工作得更好
public function ReadBets_Bet($id, $currentpage, $loggedIn = true) {
    $queryBase = "SELECT * FROM `vr_wp_bets` WHERE `id` = '%s' AND `is_open` = 'false' ORDER BY `sport` ASC;";
    if ($loggedIn == true) {
        $queryBase2 = sprintf($queryBase, $id);
    }
    else {
        $queryBase2 = sprintf($queryBase, $id);
    }
    $selectQuery = mysql_query($queryBase2);
    $return = "<div style='max-height: 400px; overflow: scroll;'>";
    while ($result = mysql_fetch_array($selectQuery)) {
        $_odds = explode("/", $result['odds']);
        $odds = $_odds[0] / $_odds[1];
        $return .= "<div style='border: 1pt solid black; width: 99%;'>";
        $return .= "<h2>" . $result['title'] . "</h2>";
        $return .= "<form action='/sports/" . CURRENT_PAGE . "/' method='post'>";
        $return .= "<table>";

        $return .= "<tr><td style='width:50%;'>Sport: </td><td>" . $result['sport'] . "</td></tr>";
        $return .= "<tr><td style='width:50%'>Participant: </td><td>" . stripslashes($result['participant']) . "</td></tr>";
        $return .= "<tr><td>Market: </td><td>" . stripslashes($result['market']) . "</td></tr>";
        $return .= "<tr><td>Time: </td><td>" . date("H:i", strtotime($result['bettilltime'])) . "</td></tr>";
        $return .= "<tr><td>Odds: </td><td>" . $result['odds'] . "<input type='hidden' value='" . $odds . "' id='__odds' /></td></tr>";
        $return .= "<tr><td>Stake: </td><td><div class='input-group'><span class='input-group-addon' id='basic-addon1'>&pound;</span><input style='width:100%' type='text' name='stake' id='stake' aria-describedby='basic-addon1' placeholder='Stake' /></div></td></tr>";


        if ($result['ew_available'] == "true") {
            $return .= "<tr><td><center><label for='eachWay'>Each way bet?&nbsp;&nbsp;</label><input type='checkbox' id='eachWay' name='eachWay' /></center></td>" .  "<td><center><input type='submit' name='submitTo__OpenBets' value='Open Bet' /></center></td></tr>";
        }
        else {                
            $return .=  "<tr><td colspan='10'><center><input type='submit' name='submitTo__OpenBets' value='Place Bet' /></center></td></tr>";
        }

        $return .= "<!-- Hidden fields for the horses information. -->";
        $return .= "<input type='hidden' name='betslip_id' value='" . $result['bet_id'] . "' />";
        $return .= "<input type='hidden' name='sport' value='" . $currentpage . "' />";

        $return .= "<input type='hidden' name='odds' value='" . $result['odds'] . "' />";
        $return .= "<input type='hidden' name='sport' value='" . $result['sport'] . "' />";

        $return .= "<input type='hidden' name='bettilldate' value='" . $result['bettilldate'] . "' />";
        $return .= "<input type='hidden' name='bettilltime' value='" . $result['bettilltime'] . "' />";

        $return .= "<!-- Area to \"submit a delete\" and remove an item from the bet slip. -->";
        $return .= "<tr><td colspan='100%'><center><input type='submit' name='delete_betslip_item' value='Delete this bet' /></center></td></tr>";
        $return .= "</table>";
        $return .= "</form>";
        $return .= "</div><br>";
    }
    $return .= "</div>";
    $return .= "<tr id='dynamic_return'><td colspan='10'><center><div class='input-group'><span class='input-group-addon' id='basic-addon2'>&pound;</span><input style='width:100%' type='text' id='showdynamicreturn' aria-describedby='basic-addon2' placeholder='0.00' readonly /></div></center></td></tr>";
    //$return .= $queryBase2;
    return $return;
}  
var count_div = 0;
$(this).ready(function () {
    $("div").each(function () {
        ++count_div;
        console.log("Counter: " + count_div);
    });

    for (var i = 0; i < count_div; ++i) {
        $("#stake-" + i).each(function () {
            console.log("Found stake " + i);
        });
    }

    for (var i = 0; i < count_div; ++i) {
        $("#__odds-" + i).each(function () {
            console.log("Found stake " + i);
        });
    }
    $("#showdynamicreturn").each(function () {
        console.log("Found text area");
    });

    for (var i = 0; i < count_div; ++i) {
        $("#stake-" + i).on('keyup', function () {
            var newVal = (parseFloat($("#stake-" + i).val(), 10) * parseFloat($("#__odds-" + i).val(), 10)) + parseFloat($("#stake-" + i).val(), 10) || 0;
            $("#showdynamicreturn").val(parseFloat(newVal).toFixed(2));
        });
    }
});
var items = 100;
$(this).ready(function () {
  for (var i = 0; i < items; ++i) {
    $("#stake-" + i).on('keyup', function () {
      var newVal = (parseFloat($("#stake-" + i).val(), 10) * parseFloat($('#__odds').val(), 10)) + parseFloat($("#stake-" + i).val(), 10) || 0;
      $("#showdynamicreturn-" + i).val(parseFloat(newVal).toFixed(2));
    });
  }
});