Типа дереваЕсли "типа дерева", то в моем понимании - вопросы должны храниться в каком-то объекте. Вроде такого:
var q = {
'Question 1' : {
'Yes' : {
'Question 1.1' : {
'Yes' : 'Result',
'No' : { /* ... */ }
}
},
'No' : {
'Question 1.2' : { /* ... */ }
}
}
};
Этот момент вы не указали, но если я угадал, то вариант может быть таким - jsfiddle.net/77ooxgwvvar q = {
'Вы ненормальный?': {
1: 'Windows Phone',
0: {
'Вы гей?': {
1: 'Apple',
0: {
'Цвет смартфона розовый?': {
1: 'Apple',
0: 'Android'
}
}
}
}
}
},
tmpl = '<p>@</p><input type="radio" name="ans" value="1">Да <input type="radio" name="ans" value="0">Нет',
cur = q[Object.keys(q)[0]],
out = $('output').html(tmpl.replace(/@/, Object.keys(q)[0]));
out.on('change', ':radio', function () {
cur = cur[$(this).val()];
if (typeof cur === 'string') {
out.html('Вам подойдёт <b>' + cur + '</b><br>Тест окончен!');
} else {
out.html(tmpl.replace(/@/, Object.keys(cur)[0]));
cur = cur[Object.keys(cur)[0]];
}
});
var d = new Date('Fri Oct 02 2015 00:45:59 GMT+0300 (EEST)');
var formatDate = ('0' + d.getDate()).slice(-2) + '/' + ('0' + (d.getMonth() + 1)).slice(-2) + '/' + d.getFullYear() + ' ' + ('0' + d.getHours()).slice(-2) + ':' + ('0' + d.getMinutes()).slice(-2) + ':' + ('0' + d.getSeconds()).slice(-2);
console.log(formatDate); // 02/10/2015 00:45:59
SELECT DATE_FORMAT(`my_date_column`, '%d/%m/%Y %H:%i:%s') AS `foramt_date` FROM `my_table`;
var data = JSON.parse(xhr.responseText);
slide.style.marginLeft = (parseInt(slide.style.marginLeft, 10) + 20) + "px";
var list = $('li'), last = list.length - 1, indx = 0, dir = {40: 1,38: -1};
$('body').on('keyup', function (e) {
indx = list.index(list.filter('.select'));
list.eq( list.eq(indx + dir[e.which]).length ? indx + dir[e.which] : (e.which ? 0 : last)).addClass('select');
list.eq(indx).removeClass('select');
});
var d = document;
d.addEventListener('DOMContentLoaded', function(){
var frame = d.getElementById('ifr'), // ваш iframe
MutationObserver = window.MutationObserver || window.WebKitMutationObserver,
observer = new MutationObserver(function (mutations) {
resizeIframe(frame);
}),
config = {
attributes: true,
childList: true,
characterData: true,
subtree: true
};
frame.addEventListener('load', function(){
observer.observe(this.contentDocument.body, config);
resizeIframe(this);
}, false);
}, false);
function resizeIframe(o){
o.style.height = o.contentDocument.body.scrollHeight + 'px';
}
Только надо учитывать, что MutationObserver не поддерживается в ослах ниже 11-ой версии. Как сделатьВсё зависит от того, какой смысл вы вкладывали в эту фразу. Если сделать самому, то тут двумя словами не обойдёшься, а если вы ищите разные пути для достижения цели, то есть и платные варианты, и бесплатные.
.calc(@t, @a, @b){
transform: ~"@{t}(@{a}) @{t}(@{b})";
}
selector {
.calc(translateX, 100%, -5rem);
}
var d = document,
fr = d.createElement("iframe");
fr.id = 'my_frame';
fr.src = "http://toster.ru/";
d.body.appendChild(fr);
function addEvent(elem, type, handler){
if(elem.addEventListener){
elem.addEventListener(type, handler, false);
} else {
elem.attachEvent('on'+type, function(){ handler.call( elem ); });
}
return false;
}
function afterLoad(){
console.log('Frame loaded!');
}
addEvent(fr, 'load', afterLoad);