даже не знаю как назвать топик, но во внутрь загляните
я тут набросал кое-что для себя, дабы быстрее работал приложение, но стоит ли в плане кроссбраузерности (в том числе и поддержка старых версий браузеров, кроме осла), или всё же лучше пользоваться jQuery?
// Selecting
function sel(selector) {
return document.querySelector(selector);
}
// Attributes manipulating
function attr(selector, attribute, value) {
var al = arguments.length;
if (al == 2) {
return sel(selector).getAttribute(attribute);
} else if (al == 3) {
return sel(selector).setAttribute(attribute, value);
}
}
|
Цитата:
|
Цитата:
ну а как насчёт кроссбраузерности ?) |
Цитата:
|
Цитата:
|
Tecvid,
зачем if (al == 3) ? |
Tecvid,
Цитата:
sel=document.querySelector Не работает? |
Цитата:
Цитата:
это просто привычка от php, пока не совсем вник в локаничность написанию в функции, объекты и т д в js)) тьфу, сам не понял что сказал :D |
Цитата:
function attr(selector, attribute, value) {
if (!value) return sel(selector).getAttribute(atribute)
return sel(selector).setAttribute(attribute, value);
}
|
Цитата:
|
krutoy,
как в атрибут установить "" ? |
Tecvid,
function attr(selector, attribute, value) {
if ( arguments.length == 2) return sel(selector).getAttribute(atribute);
return sel(selector).setAttribute(attribute, value);
}
|
Цитата:
Вот так должно работать sel=document.querySelector.bind(document) Хотя, не важно, ваш вариант не хуже:) Это чисто исследовательский интерес:) |
Цитата:
|
Цитата:
|
Цитата:
Вот так должно работать sel=document.querySelector.bind(document) Хотя, не важно, ваш вариант не хуже:) Это чисто исследовательский интерес:)[/quote] я лучше обойдусь без лиших глобальных переменных ;) но ваш вариант думаю лучше относительно удобства дальнейшего его использрвания :) |
проверил, но ваши варианты с attr() не сработали :) можете сами проверить)
update: прошу прощения, ошибка была в другом месте, а не из-за изменения функция на ваш |
Цитата:
atribute/attribute |
Tecvid,
<!DOCTYPE html>
<html>
<head>
<meta charset="windows-1251">
<title>foo</title>
<style>
</style>
</head>
<body>
<p id="foo" mmm="nnn">foo</p>
<p id="bar" mmm="nnn">bar</p>
<script>
sel=document.querySelector.bind(document)
function attr(selector, attribute, value) {
if (!value) return sel(selector).getAttribute(attribute)
sel(selector).setAttribute(attribute, value);
}
console.log(attr("#foo", "mmm"))
console.log(attr("#bar", "mmm"))
attr("#foo", "mmm", "111" )
console.log(attr("#foo", "mmm"))
</script>
</body>
</html>
|
Цитата:
|
Цитата:
Цитата:
|
Tecvid,
Но вообще, да, ронни прав, если надо выставить атрибут в значение пустой строки, мой вариант не сработает, я правда не знаю, зачем это нужно:) |
Цитата:
короче, всем большое спасибо :) очень признателен) |
Цитата:
|
Цитата:
|
function attr(selector, attrName, attrValue) {
if (arguments.length > 2) {
if (attrValue === null) {
// удаляет атрибут
return sel(selector).removeAttribute(attrName);
}
// задает значение атрибуту
return sel(selector).setAttribute(attrName, attrValue);
}
// возвращает значение атрибута
return sel(selector).getAttrubute(attrName);
}
|
рони,
В любом случае, проблема не велика, это пустое все, как выше заметил Tecvid if(value||value==="") reurn ... ... , делов то.:) |
Цитата:
хотя странно что в первоначальной функции setAttribute работал и без return, а тут нет) |
Цитата:
function attr(selector, attrName, attrValue) {
if (arguments.length > 2) {
if (attrValue === null) {
// удаляет атрибут
sel(selector).removeAttribute(attrName);
} else {
// задает значение атрибуту
sel(selector).setAttribute(attrName, attrValue);
}
} else {
// возвращает значение атрибута
return sel(selector).getAttrubute(attrName);
}
}
|
Цитата:
|
Tecvid,
ретурн -- это выход из ф-ции. То есть, если ты пишешь
f=function(){
if (foo) return bar
baz
}
То baz не отработает. Поэтому не везде их можно убирать. |
Цитата:
|
Tecvid, если я правильно понял
sel=document.querySelector.bind(document)
function attr(selector, attrName, attrValue) {
if (arguments.length > 2) {
if (attrValue === null) {
// удаляет атрибут
return sel(selector).removeAttribute(attrName);
}
// задает значение атрибуту
sel(selector).setAttribute(attrName, attrValue);// Выходим из ифа
}
// возвращает значение атрибута
return sel(selector).getAttrubute(attrName);// синтаксическая ошибка getAttrUbute, но, сюда мы вообще не должны были ходить, поэтому return убирать там нельзя было
}
|
Цитата:
|
attr(selector, attribute, value)
И в чем тут цимес?
attr(some_element,'data-huy-znaet-chto','Hello Word');
some_element.setAttribute('data-huy-znaet-chto','Hello Word');
На дохуя короче? Скаляры все равно кавычить. |
| Часовой пояс GMT +3, время: 19:29. |