2017-01-17 2 views
0

У меня есть функция, которая позволяет мне выбирать случайную радиокнопку и нажимать на нее. Но на разных страницах у меня разные .find (type). Пример:Назначение номера в .find (type) в JQuery

page1.html: controlTypeToIterateOn = 'метка'
Page2.html: controlTypeToIterateOn = ': радио'

//Radio button 
function randomNumberGenerator(max, min) { 
    var randomNumber = Math.floor(Math.random() * (max - min + 1) + min); 
    return randomNumber; 
} 

function SelectRandonRadioButton(radioButtonContainer, controlTypeToIterateOn) { //Genereal function  
    var radios = $(radioButtonContainer).find(controlTypeToIterateOn); 
    if (controlTypeToIterateOn == ':radio') 
    controlTypeToIterateOn = 1; 
    else if (controlTypeToIterateOn == 'label') 
    controlTypeToIterateOn = 0; 

    var randomnumber = randomNumberGenerator(radios.length - 1, 0); 
    //randomizing number 
    $(radios[randomnumber]).click(); 
    return $(radios[randomnumber]); 

} 

function SelectLiveRandomRadioButton(radioButtonContainer, controlTypeToIterateOn) { 
    var elem = SelectRandonRadioButton(radioButtonContainer, controlTypeToIterateOn); 
    $(elem).mousedown(); 
} 

function call() { 
    $(".YesNoRadio").each(function() { 
    SelectLiveRandomRadioButton($(this), 1); 
    }); 
} 

call(); 

Мои, если условие, которое проверяет тип входа, кажется, не Работа. Я хочу назначить числовое значение, которое я могу передать в моей функции SelectLiveRandomRadioButton(), которая находится внутри функции вызова. Например, если я прохожу '0', мой controlTypeToIterateOn = 'ярлык', если я прохожу , мой controlTypeToIterateOn = ': радио'. Кто может мне помочь? Благодарю.

+0

Я понятия не имею, что вы пытаетесь сделать здесь, или даже то, что вы просите, хотя я на 99% уверен, что вы можете сделать это намного проще, чем вы сейчас. Можете ли вы привести пример того, чего вы хотите достичь. –

+0

В настоящее время 'controlTypeToIterateOn' является либо 0, либо 1 (см. Функцию' call'), внутри 'SelectLiveRandomRadioButton' вы тестируете радио или ярлык? и ваш метод поиска будет .find (1), который никогда не подойдет. Скажите нам, чего вы хотите достичь. –

+0

@ Rory, @ axel: Прости меня за то, что ты не кристально чист. Очень просто, я хочу функцию, которая на '0', выбирает тип ввода: радио и на '1', выбирает метку 'label'. Когда я передаю это числовое значение в качестве параметра, он должен выбрать соответствующий тип ввода или метку. –

ответ

1

Я не уверен, что вы пытаетесь сделать, но глядя на код, я думаю, вы могли бы сделать что-то вроде этого:

function SelectRandonRadioButton(radioButtonContainer, controlTypeToIterateOn) { 
    var toFind; 
    if (controlTypeToIterateOn === 1) { 
    toFind = ':radio'; 
    } else if (controlTypeToIterateOn === 0) { 
    toFind = 'label'; 
    } 
    var hits = $(radioButtonContainer).find(toFind); 
    var randomnumber = randomNumberGenerator(hits.length - 1, 0); 
    $(hits[randomnumber]).click(); 
    return $(hits[randomnumber]); 
} 


function call() { 
    $(".YesNoRadio").each(function() { 
    // where 1 would find radio, and 0 label 
    SelectLiveRandomRadioButton($(this), 1); 
    }); 
} 

call(); 
Смежные вопросы