Javascript $(.class)仅对该类名的第一个标记执行
我正在尝试创建一个javascript函数,该函数遍历网页,查找class nameJavascript $(.class)仅对该类名的第一个标记执行,javascript,jquery,loops,classname,Javascript,Jquery,Loops,Classname,我正在尝试创建一个javascript函数,该函数遍历网页,查找class name“option”的所有标记,并隐藏与下面显示的每个if语句中的文本匹配的标记 在下面的示例中,我尝试使用jquery获取类,但它只获取具有该名称的第一个类,而不是该名称的所有类 我还尝试使用var element=document.getElementsByClassName('option')查看这是否有效,但当我遍历元素列表并将其显示更改为none时,更改没有显示出来 迭代类列表并仅更新部分元素的css的更好
“option”
的所有标记,并隐藏与下面显示的每个if语句中的文本匹配的标记
在下面的示例中,我尝试使用jquery获取类,但它只获取具有该名称的第一个类,而不是该名称的所有类
我还尝试使用var element=document.getElementsByClassName('option')
查看这是否有效,但当我遍历元素列表并将其显示更改为none时,更改没有显示出来
迭代类列表并仅更新部分元素的css的更好方法是什么?
感谢您的帮助。谢谢
$(document).ready(function(){
if($('.option').html() == "C. "){
$('.option').css('display','none');
}
if($('.option').html() == "D. "){
$('.option').css('display','none');
}
if($('.option').html() == "E. "){
$('.option').css('display','none');
}
if($('.option').html() == "F. "){
$('.option').css('display','none');
}
});
试试这个:
$(document).ready(function(){
$('.option:contains("C.")').hide();
$('.option:contains("D.")').hide();
$('.option:contains("E.")').hide();
$('.option:contains("F.")').hide();
});
JQuery选择器'.option:contains(“C.”)
查找选项类中包含文本“C.”的所有标记,而.hide()
函数隐藏该集合中的每个元素
或者,在单个语句中:
$(document).ready(function(){
$('.option').filter(function() {
var html = $(this).html();
return html === "C." || html === "D." || html === "E." || html === "F.";
}).hide();
});
$('.option')
查找带有选项的所有元素。.filter(function(){…})
调用将列表筛选为筛选函数返回true的元素,然后调用.hide()
隐藏这些元素
试试这个:
$(document).ready(function(){
$('.option:contains("C.")').hide();
$('.option:contains("D.")').hide();
$('.option:contains("E.")').hide();
$('.option:contains("F.")').hide();
});
JQuery选择器'.option:contains(“C.”)
查找选项类中包含文本“C.”的所有标记,而.hide()
函数隐藏该集合中的每个元素
或者,在单个语句中:
$(document).ready(function(){
$('.option').filter(function() {
var html = $(this).html();
return html === "C." || html === "D." || html === "E." || html === "F.";
}).hide();
});
$('.option')
查找带有选项的所有元素。.filter(function(){…})
调用将列表筛选为筛选函数返回true的元素,然后调用.hide()
隐藏这些元素
如果我了解您想要什么,这应该可以:
$(document).ready(function(){
$('.option').each( function(i,e) {
var current = $(e).html();
if (current == "C" || current == "D" ||
current == "E" || current == "F") {
$(e).hide();
}
});
如果我明白你想要什么,这应该行得通:
$(document).ready(function(){
$('.option').each( function(i,e) {
var current = $(e).html();
if (current == "C" || current == "D" ||
current == "E" || current == "F") {
$(e).hide();
}
});
使用.each函数
$('.option').each(function(index) {
if($(this).html == "E")
$(this).hide();
});
使用.each函数
$('.option').each(function(index) {
if($(this).html == "E")
$(this).hide();
});
您并不是只得到一个元素,您只是简单地操作jQuery对象中由$('.option')
调用返回的“第一个”元素。您需要的是jQuery的函数,以便遍历jQuery调用返回的所有元素。另外,长if语句可以缩短,但我想您知道这一点,并且还有其他用途。无论如何,一旦调用了.each,就可以使用回调函数在传递每个元素时对其进行操作。这很像for循环。下例中的参数i
表示对象迭代时元素的索引值。它是基于0的,换句话说,要通过的第三个选项元素将参数i
设置为2
试试这个&祝你好运:
$(function() {
$(".option").each(function(i) {
var txt = $(this).text();
if (txt == "C." || txt == "D." || txt == "E." || txt == "F.")
$(this).hide();
});
})
要调查的其他链接
-
- 使用此方法获取或设置元素的
innerHtml
-
- 使用此方法获取或设置元素的值
- 主要是HTML标签
select
,input
,&&&textarea
您并不是只得到一个元素,您只是简单地操作jQuery对象中由$('.option')
调用返回的“第一个”元素。您需要的是jQuery的函数,以便遍历jQuery调用返回的所有元素。另外,长if语句可以缩短,但我想您知道这一点,并且还有其他用途。无论如何,一旦调用了.each,就可以使用回调函数在传递每个元素时对其进行操作。这很像for循环。下例中的参数i
表示对象迭代时元素的索引值。它是基于0的,换句话说,要通过的第三个选项元素将参数i
设置为2
试试这个&祝你好运:
$(function() {
$(".option").each(function(i) {
var txt = $(this).text();
if (txt == "C." || txt == "D." || txt == "E." || txt == "F.")
$(this).hide();
});
})
要调查的其他链接
-
- 使用此方法获取或设置元素的
innerHtml
-
- 使用此方法获取或设置元素的值
- 主要是HTML标签
select
,input
,&&&textarea
$('.option').html()
将只获取第一个元素的innerHTML
。如果要查看所有这些,需要使用$。每个
$('.option').each(function(){
if($.inArray($(this).html(), ['C', 'D', 'E', 'F']) !== -1){
$(this).hide();
}
});
$('.option').html()
将只获取第一个元素的innerHTML
。如果要查看所有这些,需要使用$。每个
$('.option').each(function(){
if($.inArray($(this).html(), ['C', 'D', 'E', 'F']) !== -1){
$(this).hide();
}
});
我看到您正在使用jQuery。
当您使用jQuery函数包装某个类时,如$('.option'),您将获得一个元素集,这意味着它将包含所有封装在特殊jQuery类中的元素,这些类为您提供了很多功能
迭代元素集的最佳方法是使用jquery.each()函数,
它将对每个元素应用回调函数。
大概是这样的:
$(document).ready(function(){
$('.option').each(function() {
//Here you can access coresponding element to each iteration with this kyeword
// you can wrap it again like this $(this) and get all of jQuery functionality on that object again
$(this).hide();
});
}
我看到您正在使用jQuery。
当您使用jQuery函数包装某个类时,如$('.option'),您将获得一个元素集,这意味着它将包含所有封装在特殊jQuery类中的元素,这些类为您提供了很多功能
迭代元素集的最佳方法是使用jquery.each()函数,
它将对每个元素应用回调函数。
大概是这样的:
$(document).ready(function(){
$('.option').each(function() {
//Here you can access coresponding element to each iteration with this kyeword
// you can wrap it again like this $(this) and get all of jQuery functionality on that object again
$(this).hide();
});
}
这是伪代码吗?jQuery对象没有innerHTML
或display
属性。好的,我将代码更改为使用jQuery方法。是的,我知道我做错了,这就是为什么我请求一些帮助。哈哈,我知道了。感谢Jorge Zuverza在没有r的情况下向我指出了这一点