Javascript 使用jquery获取子节点中的文本
我有以下html页面结构:Javascript 使用jquery获取子节点中的文本,javascript,jquery,dom,Javascript,Jquery,Dom,我有以下html页面结构: <div class="result-row clearfix"> <span>Name1</span> <span>city1</span> <span>phone1</span> <span>details1</span> </div> <div class="result-row clearfix">
<div class="result-row clearfix">
<span>Name1</span>
<span>city1</span>
<span>phone1</span>
<span>details1</span>
</div>
<div class="result-row clearfix">
<span>Name2</span>
<span>city2</span>
<span>phone2</span>
<span>details2</span>
</div>
...
... many such similar divs
名称1
城市1
电话1
细节1
姓名2
城市2
电话2
细节2
...
... 许多类似的div
我从用户那里得到了简单的输入字段
<label for="name">Name</label> <br />
<input type="text" name="name" autocomplete="off" /> <br />
<label for="city">City</label> <br />
<input type="text" name="city" autocomplete="off" /> <br />
Name
城市
在它的模糊事件中,我想使所有没有要搜索的文本的div不可见,只显示匹配的div(即在span标记中有文本的div)
我无法使用jquery检索和匹配此内容。我尝试了以下方法:
var nodes = $(".result-row");
console.log("Nodes length: "+nodes.length); // Displays the correct number of child nodes
for(var i=0;i < nodes.length; i++) {
var cur = nodes[i];
console.log(cur); // Displays '#text' in browser js console log.
console.log(cur.childNodes[0]); // Gives undefined. Expecting to get the 1st span tag here.
}
var节点=$(“.result行”);
console.log(“节点长度:”+Nodes.length);//显示正确的子节点数
对于(var i=0;i
编辑
我需要显示具有匹配文本范围的行。已经更新了一点html,请参考更新后的问题
我能够得到完整的数据作为所有跨度的组合文本。有没有办法获取特定div中的跨度数组?节点[i]是一个jquery对象,我想它没有childNodes属性。。因此,您应该使用节点[i].get(0).childNodes来代替…节点[i]是一个jquery对象,我想它没有childNodes属性。。因此,您应该使用节点[i].get(0).childNodes来代替…您可以使用
:contains
选择器:
var $row = $('.result-row');
$('input[type=text]').blur(function() {
var val = this.value;
$row.hide();
$row.has('span:contains("'+val+'")').show()
})
您可以使用
:包含选择器:
var $row = $('.result-row');
$('input[type=text]').blur(function() {
var val = this.value;
$row.hide();
$row.has('span:contains("'+val+'")').show()
})
这里我不确定,但也许你应该做一些类似于节点的事情。对于实际元素,获取(i)
吗?我不确定,但也许你应该做一些类似于节点的事情。对于实际元素,获取(i)
这样的事情?嘿,这很有帮助。但是,我已经缩短了问题的时间。有5个这样的输入字段,每个div有5个这样的跨度。如果相应跨度的文本匹配,我想隐藏div行。希望我清楚。如果你有任何疑问,请告诉我。谢谢,这很有帮助。但是,我已经缩短了问题的时间。有5个这样的输入字段,每个div有5个这样的跨度。如果相应跨度的文本匹配,我想隐藏div行。希望我清楚。如果你有任何疑问,请告诉我。谢谢,谢谢。这也解决了我的问题。现在,我可以使用get()
轻松地遍历dom。缺少这部分:)谢谢。这也解决了我的问题。现在,我可以使用get()
轻松地遍历dom。缺少此部分:)