当我尝试通过访问子节点来定位特定元素时,我遇到了困境点击事件将无法工作但如果我使用getElementById然后通过它附加它将工作但我需要理想情况下通过子节点。下面是我的代码。
jQuery('#begin_consult').click(function(){
jQuery('.cq-container').show();
jQuery('#begin_consult').hide();
if(jQuery('.option').hasClass('c_questions')){
var y = document.getElementsByClassName('c_questions');
for(var i = 0; i < y.length; i++){
jQuery('.main-body').append(y[i].innerHTML);
var get_age_gparent = document.getElementsByClassName('age-check')[0];
get_age_gparent.style = "display:block;";
var get_age_parent = get_age_gparent.childNodes[1];
var getOptionsDD = get_age_parent.childNodes[3];
var getOptionsUL = getOptionsDD.childNodes[1];
var getInputNo = getOptionsUL.childNodes[1];
var getRadioBtnAge = getInputNo.childNodes[0];
getRadioBtnAge.onclick = function(){
alert('fffff');
};
}
}
});
答案 0 :(得分:0)
我建议你使用另一种方法。您当前的实现使您的代码严格依赖于HTML的结构。如果你换过最轻微的物品,它就会破裂。您可以在div中添加图像,图标或包装元素。 如果我是你,我会以不同的方式引用它们。 Sudo代码我没有测试或运行:
var get_age_gparent = jQuery('.age-check').first();
get_age_gparent.css({'display':'block'});
var get_age_parent = get_age_gparent.find('.ageparent');//add new class on target
var getOptionsDD = get_age_parent.find('.optionsdd');//add new class on target
var getOptionsUL = getOptionsDD.find('.optionsUL');//add new class on target
var getInputNo = getOptionsUL.find('.inputNo');//add new class on target
var getRadioBtnAge = getInputNo.find('input[type=radio].btnage');//add btnage classname to target button
getRadioBtnAge.click(function(){
alert('fffff');
});