我使用自定义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.'"> <b>'.$custompay.'</b> ';
}
我在jQuery选择器中使用下面相同的ID但是当它动态时它不起作用:
jQuery("#cnp_payment_method_selection_customay").click(function() {
jQuery("#cnp_CreditCard_div").hide();
jQuery("#cnp_eCheck_div").hide();
jQuery("#cnp_Custompay_div").show();
});
如何在该选择器中调用该动态ID?
在$ custompay中,我们会得到一些类似自定义,custom1,custom2 的内容,基于该ID应该是 cnp_payment_method_selection_customay,cnp_payment_method_selection_customay1,cnp_payment_method_selection_customay2
使用以下代码
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.'"> <b>'.$custompay.'</b> ';
}
$html .= '</span>';
我的var简单获取了我想要的ID,但现在我希望在<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.'">
变量我想将id作为变量
调用答案 0 :(得分:0)
您可以使用'starts with'选择器来识别元素:
$('input[id^=cnp_payment_method_selection_]')
这将返回所有包含以cnp_payment_method_selection_
开头的ID的元素。
答案 1 :(得分:0)
他们不一样。
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.'"> <b>'.$custompay.'</b> ';
}
jQuery(".cnp_payment_method_selection_customay").click(function(){
var id = $(this).data('id');
});
答案 2 :(得分:0)
您可以使用jQuery.add方法创建动态选择器(您可以遍历$ paymentMethods [&#39; CustomPayment&#39;]并将元素添加到选择器中)
var selector = $();//an empty selector
foreach($paymentMethods['CustomPayment'] as $custompay) {
selector.add('#cnp_payment_method_selection_'.$custompay);//add a $custompay to the selector
}
答案 3 :(得分:0)
我能够看到。 我认为您尝试使用不同的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.'"> <b>'.$custompay.'</b> ';
}
然后让你将$ html附加到具有类容器的元素,如下所示
$(".container").html($html);
然后,您将使用.on进行点击事件输入,并从父母(此处.container)引用,如下所示。
$(".container").on('click','#cnp_payment_method_selection_customay', function() {
// your stuff here
});