function getPxDiag(){
var scW = screen.width, scH = screen.height;
//return Math.hypot(scW, scH) - не работает в IE
return Math.sqrt( Math.pow(scW, 2) + Math.pow(scH, 2) );
}
<div id="inch" style="width:1in;"></div>
//Общая формула: PIXEL = INCHES / (1 / DPI);
function getInchDiag(){
var DPI = inch.offsetWidth;
return getPxDiag() * (1/DPI);
}
alert( getInchDiag() );
1in
, соотвественно, имеет ширину меньше, чем реальный дюйм. insertAdjacentHTML
, как показали вам выше, либо придется сначала распарсить результат:function parseData(data){
var div = document.createElement("div");
div.innerHTML = data;
return Array.prototype.slice.call(div.childNodes)
.reduce(function(df, child){
return df.appendChild(child), df;
}, document.createDocumentFragment())
;
}
//str - ваш HTML
//beforer - элемент, перед которым надо вставить str
beforer.parentNode.insertBefore( parseData(str), beforer );
[
{"id":"1","fio":"hhhhhh","pn":"1","vt":"1","sr":"1","cht":"1","pt":"2","sb":"1","vs":"1","user_id":"154","group_id":"0","data_reg":"2015-11-18"},
{"id":"2","fio":"sdfsdfsdf","pn":"2","vt":"3","sr":"1","cht":"2","pt":"3","sb":"1","vs":"2","user_id":"154","group_id":"0","data_reg":"2015-11-18"}
]
if ( $_GET["func"] == "GetPersonal" ){
$result = $mysqli->query( "SELECT * FROM personal WHERE user_id='".$_SESSION['user_id']."'" );
if (!$result) error($mysqli->error);
if ( $result->num_rows > 0 ) {
while($row = $result->fetch_assoc()) {
$myArray[] = $row;
}
echo json_encode($myArray);
} else {
echo json_decode('{"answer" : "empty"}');
}
$result->free();
$result->close();
$mysqli->close();
exit();
}
var obj = JSON.parse(data);
obj.forEach(function(current){
console.log(currenr.fio);
});
form1.onchange = function(e){
if(e.target.name == "radio1"){
this.elements.input1.disabled = !+e.target.value;
}
}
$("#form1").on("change", "input[name=radio1]", function(){
var $this = $(this);
$this.next("input[name=input1]").prop("disabled", !+$this.val());
//this.form.elements.input1.disabled = !+this.value;
});
var i = 3;
var i = i;
console.log(i); //3
return false
, да и только по причине затруднений с IE (event.returnValue/preventDefaullt
, а так же e||event
). window
, создавая множество функций в глобальной области видимости, либо засунуть все обработчики в один объект в качестве методов и усложнить себе жизнь. Но все же, главное неудобство в том, что в случае чего придется бежать в HTML смотреть что делает определенная функция, а если разные его части еще и на файлы разбиты... var $area = $("#textarea"), $feed = $("#textareaFeedback");
$('#textarea').on("input", function(){
var val = this.value, selStart = this.selectionStart;
val.length > maxLength && $area
.val( val.substr(0, maxLength) )
.prop({
selectionStart : selStart,
selectionEnd : selStart
})
;
var remaning = Math.max(maxLength - val.length, 0);
$feed.html(' - осталось ( ' + remaning + ' ) символов ')
.toggleClass('warning', remaning < 15);
});
Object.clone = function clone(o, copyProto, copyNested){
function Create(i){
for(i in o){
if(o.hasOwnProperty(i)) this[i] = ( copyNested && typeof o[i] == "object" )
? clone(o[i], true, true) : o[i];
}
}
if(copyProto && "__proto__" in o) Create.prototype = o.__proto__; //IE затупит
return new Create();
}
//o - Целевой объект
//copyProto - будет ли скопирован прототип объекта
//copyNested - будут ли клонированы объекты, вложенные в текущий или сохранятся в виде ссылок
var target = {
"A" : {
"Z" : 1,
"X" : 2,
"Y" : {
"F" : 3,
"G" : 4
}
}
};
target.__proto__.f = function(){};
var clone1 = Object.clone(target, false, true);
clone1.f //undefined
clone1.A == target.A //false
var clone2 = Object.clone(target, true);
clone2.f //function
clone2.A == target.A //true
-ab-cd
= AbCd
, то есть, отбрасывать тире, а букву, следующую за ним, возводить в верхний регистр.border-width
- borderWidth
, -moz-transform
- MozTransform
,data-tag-for-title
- dataset.tagForTitle
. var links = document.getElementsByClassName('link-span');
while(links.length) {
links[0].outerHTML = '<a target="_blank" href="#">New элемент</a>';
}
i+1
не делает с переменной ровным счетом ничего - i
как была 0, так и останется 0. /* box = getElementsByClassName("box"); */
while(box.length) {
box[0].replaceWith(a.cloneNode());
}
/*
Или можно сделать так:
box = document.querySelectorAll(".box");
*/
for(var i = 0; i < box.length; i++) {
box[i].replaceWith(a.cloneNode());
}
Element.prototype.replaceWith = function(e){
this.parentNode.insertBefore(e, this);
this.remove();
}