是否有事实上的标准来标识要附加到的JavaScript库的HTML元素?

我正在创建一个JavaScript库。该库将自身附加到HTML文档中的一个或多个div。我想自动附加,以便用户轻松集成库。对于HTML元素如何以这种方式向库标识自己,是否存在事实上的标准或最佳实践?现在,我查找具有以特定前缀开头的ID的所有元素,例如id =“fooLibDiv1”或“fooLibMyDiv”等等。这感觉很脆弱。寻找像'attachFooLib =“yes”'这样的非标准属性会更好吗?或者寻找特定的CSS类?等等。 (FWIW,我不想要求我的用户使用jQuery。另外:不在这里寻找代码,只是正确的设计方法应该是什么。)     
已邀请:
使用类。正如你所说,这些不是“特定的CSS类”,“类”只是说特定元素属于一组相似的元素。并且这些相似的元素也被类似地处理 - 无论是CSS的设计还是你的情况下的行为。     
我不会为此目的使用id。出于其他原因,您的用户可能希望在元素上使用id。此外,使用额外的属性会阻止验证,而且有些用户可能会想要这样做。 我会用课。我认为为你的库命名它们会很好,所以例如你可以使用类似
fooLibButton
fooLibList
等类名。由于元素可以有多个类,因此不会导致id导致的问题。 如果你不使用jquery,你仍然可以轻松获得这些元素:
/*
 * addLoadEvent based upon this blog article:
 *
 * http://simon.incutio.com/archive/2004/05/26/addLoadEvent
 */
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {oldonload();func();}
    }
}

/*
 * As proposed by Bernard Marx on:
 * http://www.webmasterworld.com/forum91/1729.htm
 */
function getElementsByCondition(condition,container) {
    container = container||document
    var all = container.all||container.getElementsByTagName('*')
    var arr = []
    for(var k=0;k<all.length;k++){
        var elm = all[k]
        if(condition(elm,k)){
            arr[arr.length] = elm
        }
    }
    return arr
}
function checkWetherContainsClass(classname,element){
    var classes =
    element.className.split(" ");
    var found = false;
    var k=0;
    while(k<classes.length&&classes!=classname){k++;}
    return !(k == classes.length);
}

function getElementsByClass(classname,container){
    return getElementsByCondition(function(x,y){return checkWetherContainsClass(classname,x);},container);
}
但回答你的问题:afaik,不,没有事实上的标准。     
CSS选择器。几乎所有JS框架(jQuery,prototype ...)都使用此方法。 CSS选择器语法是Web开发人员所熟悉且易于使用。 http://simonwillison.net/2003/Mar/25/getElementsBySelector/ 创建一个带有CSS选择器的init函数,并将库附加到结果元素列表中。     

要回复问题请先登录注册