使用jquery时addClass不是函数[close]

i7uq4tfw  于 2023-11-17  发布在  jQuery
关注(0)|答案(1)|浏览(112)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。

这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
27天前关闭
Improve this question
我有一个JS函数在我的网页UI中呈现一个“按钮”。
该按钮是使用CSS格式的DIV构建的,其中包含图标图像和一些文本。我发现了一些文本溢出按钮的问题(由于用户浏览器字体设置),如果发生这种情况,我想添加一个滚动条。
但是,当试图添加类以使文本div可滚动时,我得到 “addClass不是一个函数”
这是我的函数。下面是它被调用的例子。

function renderButton(btnArea,btnClass,btnOnclick,btnIcon,btnText,btnId) {
    var btndiv = $("<div>").addClass(btnClass).attr("onclick",btnOnclick).attr("id",btnId);
    var btnimg = $("<img>").addClass("btnicon").attr("src",btnIcon).attr("id",btnId+"img");
    var btntxt = $("<div>").addClass("btntext").text(btnText).attr("id",btnId+"txt");
    btndiv.append(btnimg);
    btndiv.append(btntxt);
    $(btnArea).append(btndiv);
    txtIdSelector = "#"+btnId+"txt";
    if ($(txtIdSelector)[0].scrollHeight > $(txtIdSelector)[0].offsetHeight ) {
        $(txtIdSelector)[0].addClass("scrollable");
    }
}

button_icon = file_path+"death_icon_white.svg";
button_text = "Death England & Wales GRO Index entry (1993 onwards) abcd def ghi jkl mno";
button_id = "btn"+"001";
renderButton("#btn-test-area","choicebtn","sayHello()",button_icon,button_text,button_id);

字符串
我以前可以像下面这样使用HTML DOM来实现这个功能,但是我相信我应该使用jQuery来提高效率。

offset_height = document.getElementById("btn001txt").offsetHeight;
scroll_height = document.getElementById("btn001txt").scrollHeight;
if (scroll_height > offset_height) {
  document.getElementById("btn001txt").classList.add("scrollable");
}


有没有什么关于我的jQuery函数不工作的线索?谢谢

piok6c0g

piok6c0g1#

评论意见摘要如下:
接收这样的HTML元素是纯JavaScript,不会返回jQuery对象:

document.getElementById("btn001txt")

字符串
选择jQuery('#btn001txt')的元素,以便addClass在jQuery对象上可用:

jQuery('#btn001txt').addClass('scrollable');


正如您自己的评论中所述,$(txtIdSelector).addClass("scrollable");修复了该行为。

相关问题