Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jquery选择器中调用动态id_Javascript_Jquery - Fatal编程技术网

Javascript 如何在jquery选择器中调用动态id

Javascript 如何在jquery选择器中调用动态id,javascript,jquery,Javascript,Jquery,我正在使用自定义的id生成无线电输入,如下所示: foreach($paymentMethods['CustomPayment'] as $custompay) { $html .= '<input type="radio" id="cnp_payment_method_selection_'.$custompay.'" name="cnp_payment_method_selection" class="cnp_payment_method_selection" style="m

我正在使用自定义的
id
生成无线电输入,如下所示:

foreach($paymentMethods['CustomPayment'] as $custompay) {
    $html .= '<input type="radio" id="cnp_payment_method_selection_'.$custompay.'" name="cnp_payment_method_selection" class="cnp_payment_method_selection" style="margin: 0 0 0 0;" value="'.$custompay.'">&nbsp;<b>'.$custompay.'</b>&nbsp;&nbsp;&nbsp;';
}
如何在选择器中调用该动态id

在$custompay中,我们将得到这样的东西:custom,custom1,custom2,基于该id,应该是cnp\u支付方式选择方式选择方式选择方式选择方式选择方式选择方式选择方式选择方式选择方式1,cnp\u支付方式选择方式选择方式选择方式选择方式选择方式选择方式2

通过使用下面的代码

foreach($paymentMethods['CustomPayment'] as $custompay) {
                $html .='<script type="text/javascript">
                        var simple = "cnp_payment_method_selection_'.$custompay.'";
                        alert(simple);

                        </script>'; 

                    //print_r($custompayment);
                $html .= '<input type="radio" id="cnp_payment_method_selection_'.$custompay.'" name="cnp_payment_method_selection" class="cnp_payment_method_selection" style="margin: 0 0 0 0;" value="'.$custompay.'">&nbsp;<b>'.$custompay.'</b>&nbsp;&nbsp;&nbsp;';

                }
                $html .= '</span>';
foreach($paymentMethods['CustomPayment']作为$custompay){
$html.='
var simple=“cnp_付款方法_选择.$custompay.”;
警报(简单);
'; 
//打印(客户付款);
$html.=''.$custompay';
}
$html.='';
其中,我的var simple是获取我想要的Id,但现在我想在


变量我想将id的位置称为变量

您可以使用“开始于”选择器来标识元素:

$('input[id^=cnp_payment_method_selection_]')
这将返回ID以
cnp\u payment\u method\u selection\u开头的所有元素

它们不一样

id="cnp_payment_method_selection_'.$custompay.'" 
jQuery("#cnp_payment_method_selection_customay").click(function(){
您可以使用数据参数获取id

foreach($paymentMethods['CustomPayment'] as $custompay) {
                    $html .= '<input type="radio" data-id="'.$custompay.'" name="cnp_payment_method_selection" class="cnp_payment_method_selection" style="margin: 0 0 0 0;" value="'.$custompay.'">&nbsp;<b>'.$custompay.'</b>&nbsp;&nbsp;&nbsp;';
                   }

jQuery(".cnp_payment_method_selection_customay").click(function(){
      var id = $(this).data('id');
        });
foreach($paymentMethods['CustomPayment']作为$custompay){
$html.=''.$custompay';
}
jQuery(“.cnp\u付款方法\u选择\u客户”)。单击(函数(){
var id=$(this.data('id');
});
您可以使用方法创建动态选择器(您可以迭代$paymentMethods['CustomPayment'],并将元素添加到选择器)

正如我所看到的。 我认为您正在尝试使用不同的ID生成一些inut类型,然后将该动态输入类型插入到任何页面元素中

所以,若您正在生成动态元素并将其附加到DOM中,那个么您不能向它们提供直接单击事件,这将不起作用。 为此,您需要通过父元素引用,并且需要使用.on

如果按如下所示生成元素

foreach($paymentMethods['CustomPayment'] as $custompay) {
    $html .= '<input type="radio" id="cnp_payment_method_selection_'.$custompay.'" name="cnp_payment_method_selection" class="cnp_payment_method_selection" style="margin: 0 0 0 0;" value="'.$custompay.'">&nbsp;<b>'.$custompay.'</b>&nbsp;&nbsp;&nbsp;';
}
$(".container").on('click','#cnp_payment_method_selection_customay', function() {
 // your stuff here

});
然后,您将使用.on和引用父级(此处为.container)提供需要提供的输入的click事件,如下所示

foreach($paymentMethods['CustomPayment'] as $custompay) {
    $html .= '<input type="radio" id="cnp_payment_method_selection_'.$custompay.'" name="cnp_payment_method_selection" class="cnp_payment_method_selection" style="margin: 0 0 0 0;" value="'.$custompay.'">&nbsp;<b>'.$custompay.'</b>&nbsp;&nbsp;&nbsp;';
}
$(".container").on('click','#cnp_payment_method_selection_customay', function() {
 // your stuff here

});

您是否尝试检查呈现的HTML外观?当动态添加使用事件删除时,我有一个id,但名称不同,如#cnp_付款(方法)选择(客户日#cnp_付款)方法(选择)选择(客户日#1#cnp)付款(方法)选择(客户日)2,#cnp\u payment\u method\u selection\u customay3类似的内容我希望基于选择点击id在dom中添加输入类型的位置?我不希望所有输入类型都带有特定变量,只希望$customPay是的,它们不相同,我希望生成的id调用selectorbut在这个id$(“.container”)。打开('click','cnp_payment_method_selection_customay',function(){//your stuff here});其中cnp_payment_method_selection_customay与每个radiousing不同,在click事件中使用$(this)变量可以获得$(this).val();但我认为您需要根据单击事件进行区分,这样就不需要设置不同的id。只需像这样使用类,并使用$(“.container”)给出单击事件。关于(“单击”,“cnp支付方法选择”,函数(){//your stuff var clicked_value=$(this.val();});使用单击的单选值,您可以选择任何您想要的内容。虽然此代码可以回答问题,但提供有关此代码回答问题的原因和/或方式的附加上下文可提高其长期价值。您是对的@DonaldDuck,我添加了一些上下文
$(".container").on('click','#cnp_payment_method_selection_customay', function() {
 // your stuff here

});