даже не знаю как назвать топик, но во внутрь загляните
я тут набросал кое-что для себя, дабы быстрее работал приложение, но стоит ли в плане кроссбраузерности (в том числе и поддержка старых версий браузеров, кроме осла), или всё же лучше пользоваться 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, время: 17:40. |