hasAttribute函数是否允许属性的ID或名称?

时间:2018-03-29 18:29:03

标签: javascript attributes mousehover

我正在处理悬停的脚本。基本上我创建了一个div,它放在一个聊天框容器中,悬停在特定项目(在这种情况下,一个按钮)上,并在聊天框中显示一些文本。删除悬停后,文本将消失。

我还没有完全消失,但这并不是我需要帮助的。我正在使用hasAttribute函数来识别我新创建的Div。我遇到的问题是,如果我将鼠标悬停在我的按钮对象上,当我设置hasAttribute(“hovertext”)时,我会得到“它的错误”,但如果我将hasAttribute设置为“Class”,我会得到“它的真实” 。

我的程序使用多个创建/实例div,并且所有div都有类。所以只说“类”不会真正针对“hovertext”div。

hasAttribute是否有类命名的内容?像这样:hasAttribute(“class:hovertext”)?enter image description here

function hoverMessage(message) {
    var chatbox = dom.el("chatbox");
    var div = document.createElement("div");
    // chatbox.appendChild(div).textContent = message;
    chatbox.appendChild(div).innerHTML = message;
    chatbox.setAttribute("class", "chatboxtext");
    div.setAttribute("class", "hovertext");

    if (div.hasAttribute("class"))
    {
        console.log("its true");

    }
    else {
        console.log("its false");
        console.log(div);
    }
    chatbox.scrollTop = chatbox.scrollHeight;   
};

2 个答案:

答案 0 :(得分:2)

在您的情况下,为了测试元素是否具有指定的类,您可以使用:

  

classList.contains( String ):检查元素的class属性中是否存在指定的类值。



var retVal = document.querySelector('p').classList.contains('hovertext');
console.log(retVal);

<p class="class1 class2 hovertext class3"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

Element.hasAttributes()方法返回布尔值,指示当前元素是否具有任何属性。

所以你可以通过id找到元素的属性。

示例

var elem = document.getElementById("element"); 
if (element.hasAttributes()) { 
    // do something with 'element.attributes'
}