如果属性等于“”,如何使用jquery进行测试

如果属性等于“”,如何使用jquery进行测试,jquery,arrays,attributes,selector,Jquery,Arrays,Attributes,Selector,我到处寻找一个解决方案,我已经找到了许多接近答案的方法,但却找不到解决我确切问题的方法 我有jquery删除显示:无;样式属性 这会将“样式”属性设置为“样式=”,因为在“样式”属性中没有设置其他样式 如何测试并构建一个包含所有将style属性设置为style的元素的数组= 注意,所讨论的元素是id为returnedTable的表的一部分 td元素看起来像 我试图为每个将style属性设置为style=”的td元素返回rel属性中包含的数据数组。请注意,它将与类似的td元素混合在一起 <t

我到处寻找一个解决方案,我已经找到了许多接近答案的方法,但却找不到解决我确切问题的方法

我有jquery删除显示:无;样式属性

这会将“样式”属性设置为“样式=”,因为在“样式”属性中没有设置其他样式

如何测试并构建一个包含所有将style属性设置为style的元素的数组=

注意,所讨论的元素是id为returnedTable的表的一部分

td元素看起来像

我试图为每个将style属性设置为style=”的td元素返回rel属性中包含的数据数组。请注意,它将与类似的td元素混合在一起

<td style="display: none;" rel="24839">
那一个呢


快乐编码

您可以将样式设置为如下所示的所有元素:

var eles = $("*[style='']");
如果只需要rel属性值,可以执行以下操作:

var arr = $("*[style='']").map(function() {
    return $(this).attr("rel");
}).get();

为什么不使用jquery为这些元素指定一个特定的类呢?您可以很容易地构建它们的rel值数组

var rels = [];
$('#returnedTable tr td.myClass').each(function(){
   rels.push($(this).attr("rel"));
});

一种更合适的方法是添加一个类,然后使用这些类进行选择,而不是按照您尝试的方式进行选择。由于许多其他原因,“样式”属性可能为空。如果要用JS删除display:none,只需用类名或自定义属性标记这些对象,并使用jQuery再次查找它们就更简单了。感谢您的及时回复。哪种解决方案更好?这个还是第三个?问题在于选择了多少dom以及如何搜索它。我不完全理解所有选择器,它们都能工作。post is question是Tomalak+1提出的,那么-get和toArray之间有什么区别?@Wes-最好将搜索范围缩小到特定的容器。在我的示例中,我假设您希望在整个DOM中搜索匹配的属性。Tomalak的解决方案假设您正在查找id为“returnedTable”的表中的表单元格。@Wes:这是首选项。更好地使用你喜欢的。就性能而言,它们之间不会有任何不同。@Karim79&&Tomalak,你们都介绍了我从未使用过的jquery函数,我现在必须学习这些函数。。。谢谢,哈哈。。不,真的谢谢你们。我想既然这两种解决方案都是正确的,那么您认为在资源方面什么是最快和最简单的呢。这将帮助我为其他读者标记正确答案。据我所知,您是在我删除display:none样式属性时说的,以添加一个自定义类,该类在每个已删除display:none的用户中都是通用的?是的。然后可以使用$'td.myClass.attr'rel'将这些tds作为目标;这是解决问题的更好方法,因为我遇到的问题是由于您的解决方案将修复的设计缺陷。我有+1你,请留下这个答案给其他人阅读。
var rels = [];

$("#returnedTable td[style='']").each(function () {
  rels.push( $(this).attr("rel") );
});
var rels = [];
$('#returnedTable tr td.myClass').each(function(){
   rels.push($(this).attr("rel"));
});