Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何按$(“className”)引用对象?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何按$(“className”)引用对象?

Javascript 如何按$(“className”)引用对象?,javascript,jquery,html,Javascript,Jquery,Html,我试图在网页上获取属于某个类的对象数组 这是我第一次使用JQuery和JS进行实验,请理解 我想返回属于类dataRow odd的所有项的数组 目前我正在尝试$('.dataRow odd')和$('.dataRow.odd'),如图所示和所示 对于一些外部类,这个方法似乎有效,我可以得到元素。一旦我进入一个更深的(更缩进的),它就不会了 这是我试图访问的表的html: <div class="listRelatedObject caseBlock"> <div cla

我试图在网页上获取属于某个类的对象数组

这是我第一次使用JQuery和JS进行实验,请理解

我想返回属于类
dataRow odd
的所有项的数组

目前我正在尝试
$('.dataRow odd')
$('.dataRow.odd')
,如图所示和所示

对于一些外部类,这个方法似乎有效,我可以得到元素。一旦我进入一个更深的(更缩进的),它就不会了

这是我试图访问的表的html:

    <div class="listRelatedObject caseBlock">
<div class="bPageBlock brandSecondaryBrd secondaryPalette">
    <form action="/p/case/CaseMassAction?retURL=%2F500%3Fisdtp%3Dlt%26fcf%3D00BE0000003Suuk&amp;ent=Case&amp;from=&amp;isdtp=lt" id="actionForm" method="POST" name="actionForm" onsubmit="return verifyChecked(actionForm, 'ids', 'Please select at least one row')" target="mainFrame">
            <input type="hidden" name="isdtp" id="isdtp" value="mn">
            <input type="hidden" name="retURL" id="retURL" value="/500?isdtp=lt&amp;fcf=00BE0000003Suuk">
        <div class="pbHeader">
            <div class="listHeader">...</div>
        </div>
        <div class="pbBody">
            <table class="list" border="0" cellspacing="0" cellpadding="0">
                <tbody>
                    <tr class="headerRow">...</tr>
                    <!-- ListRow -->
                    <tr class="dataRow even first bRowHilight" id="row_500E000000B8LgY" onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onmouseover="if (window.hiOn){hiOn(this);}">...</tr>
                    <!-- ListRow -->
                    <tr class="dataRow odd" id="row_500E000000B77FP" onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onmouseover="if (window.hiOn){hiOn(this);}">...</tr>
                    <!-- ListRow -->
                    <tr class="dataRow even" id="row_500E000000B8NHk" onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onmouseover="if (window.hiOn){hiOn(this);}">...</tr>
                    <!-- ListRow -->
                    <tr class="dataRow odd last" id="row_500E000000B7TIG" onblur="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onmouseover="if (window.hiOn){hiOn(this);}">...</tr>
                </tbody>
            </table>
        </div>
    </form>
</div>
我得到了元素:

<div class="bodyDiv brdPalette brandPrimaryBrd">...</div>
我想一切都正常,除了那个 $('.dataRow.odd').length+$('.dataRow.偶数').length 将不起作用(因为$('dataRow.odd')返回null)

感谢到目前为止的回复。对不起,如果我的答案以前不清楚的话——对这个问题还是很陌生的

谢谢

我想返回属于类
dataRow odd
的所有项的数组

请注意,由于类是一个以空格分隔的令牌列表,
dataRow-odd
实际上是两个类,一个是
dataRow
,另一个是
odd

将这些知识与CSS选择器结合起来,您将认识到使用这两个类选择单个元素的最简单方法是使用

.dataRow.odd
哪个匹配

<span class="dataRow odd"></span>
<span class="odd dataRow"></span>
<span class="foo odd bar dataRow baz"></span>
试试这个。创建一个数组(示例中的元素)。循环使用类名遍历每个元素并推送到元素数组

var elements = [];

$('.dataRow.odd').each(function(){
     elements.push($(this));
}):
示例代码中缺少$('.dataRow-odd')上的“.”。 此外,还讨论了选择子元素和多类元素之间的区别

孩子

$('.dataRow.odd');(此处包括空格)
多类

$('.dataRow.odd'); (no space)

<div class="dataRow odd">
</div>
$('.dataRow.odd');(没有空间)

你是指类dataRow和odd吗?元素是什么样子的,你确定你不仅仅是在寻找
$('.dataRow.odd')
在vanilla js中,使用
document.querySelectorAll(“.dataRow.odd”)
document.getElementsByClassName(“dataRow odd”)
。在jQuery中,使用
$('.dataRow.odd')
$('.dataRow.odd')
应该执行您想要的操作。你能详细说明一下吗:“对于某些父类,这个方法似乎有效,我可以得到元素。一旦我进入一个祖先,它就不起作用。”@CookieMonester-应该是
document.getElementsByClassName(“dataRow odd”)
。这是正确的语法
GetElementsByCassName
只有一个参数。然而,问题是OP已经尝试了
$('.dataRow.odd')
,在这句话之后,它说
一旦我进入一个祖先,它就不起作用了。
Hi@PaulS.,我已经尝试了这两种方法,但当我在控制台中键入它们时,我仍然得到了“null”。是否有理由我必须使用内部节点而不是document.querySelectorAll(“dataRow-odd”)?我将此标记为答案,尽管它对我不起作用,因为它应该与我提供的信息一起工作。问题在于该类是在iframe内部引用的。为了让$('.className')正常工作,我必须对网页进行jquery,然后使用$(“#iframeID”)获取iframe,使用.contents()方法获取iframe中的内容,然后查找(“.dataRow”)以获取我要查找的元素。谢谢大家的回答。抱歉,我没有提供足够的详细信息,我只是不确定在哪里添加信息,或者iframe是个问题。嗨@DonaldPowell。非常感谢你的回答。但是我仍然有困难,我想不是因为函数不工作,而是因为它没有返回属于类的任何对象。您认为$('dataRow.odd')找不到我的元素是有原因的吗?上面的注释显示了$('dataRow.odd')。我相信您想要美元('.dataRow.odd')。您需要在任何类名之前加一个句点(“.”),在id名称之前加一个哈希/磅(#”)。试试$('.dataRow.odd')。谢谢@DonaldPowell,但还是没有运气:/
var array = Array.prototype.slice.call(nodeList);
var elements = [];

$('.dataRow.odd').each(function(){
     elements.push($(this));
}):
$('.dataRow .odd'); (space include here)

<div class="dataRow">
   <div class="odd"></div>
</div>
$('.dataRow.odd'); (no space)

<div class="dataRow odd">
</div>