将JavaScript转换为jQuery

6

我有一些 JavaScript 函数,想要转换成 jQuery,但是我不太懂 jQuery。它经常使用 document.getElementsByName,所以我想知道如何将 document.getElementsByName 转换为 jQuery。

function getElements(name){
    if (document.getElementsByName(name)[0].className == "visible"){
        document.getElementsByName(name)[0].className = "hidden";
    } else {
        if(document.getElementsByClassName('visible')[0] != null){
            document.getElementsByClassName('visible')[0].className = "hidden";
        }
        document.getElementsByName(name)[0].className = "visible";
    }
}

16
请先尝试自己完成。 - Ivan Chernykh
你实际上是想用JavaScript做什么? - Ahmed Magdy
有很多关于这个问题的建议,但我认为你需要开始学习jQuery而不是问问题。这个网站应该是开始学习jQuery的好地方(http://api.jquery.com/category/core/)。 - Naveed Butt
@NaveedButt 具体问题是如何转换 getElementByName。虽然教程是一个好主意,但我认为这个问题不会太宽泛。 - John Dvorak
2
-> http://api.jquery.com/category/selectors/ -> http://api.jquery.com/category/selectors/ - Felix Kling
4个回答

4

您可以尝试使用属性选择器...

 $('[name="'+name+'"]')  //for name selector
 $('.visible') //for class selector

很高兴能帮到你...如果你认为有帮助的话,你可以接受任何一个答案...无论如何,愉快编码.. :) - bipen

3
你应该尝试练习,因为你实际上正在学习:
  • jQuery中的document.getElementsByName $("[name=Name]");
  • jQuery中的document.getElementsById $("#IdofElement");
  • jQuery中的document.getElementsByClass $(".ClassofElement");

以下是一些教程:

  1. 适用于初学者的jQuery
  2. jQuery API
  3. jQuery入门指南

为什么你没有链接到官方 jQuery 教程呢?(我不是指文档) - John Dvorak
@EddieCastle 你可以去谷歌搜索 “如何使用jQuery按名称获取元素”,然后搜索 “如何使用jQuery按类名获取元素”,接着搜索 “如何在元素中添加类jQuery”。然后,你可以将所学内容组合起来创建你的功能。 - iConnor

0

您可以参考以下语法。

$('[name=tcol1]') // matches exactly 'tcol1'

$('[name^=tcol]') // matches those that begin with 'tcol'

0

试试这个。

function getElements(name1){
    if ($("[name='" + name1 + "'").hasClass("visible")){
        $("[name='" + name1 + "'").removeClass("visible").addClass("hidden");
    } else {
        if($(".visible") != null){
            $(".visible").addClass("hidden");
        }
        $("[name='" + name1 + "'").removeClass("visible").addClass("visible");
    }
}

他的原始代码替换了这个类,而你是在添加一个类,而没有删除旧的那个。你最终会得到一个既隐藏又可见的元素,这可能不是你想要的结果。 - Barmar
这正是我想要的代码,谢谢。不过第8行应该是$("[name='" + name1 + "'").removeClass("hidden").addClass("visible");。 - Eddie Castle
不要紧,Barmar 是正确的,它最终会生成一个隐藏类和一个可见类。 - Eddie Castle
我在第六行末尾添加了.removeClass("visible"),然后它就起作用了。 - Eddie Castle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接