使用jQuery获取子元素的部分HTML值

时间:2014-12-02 09:07:35

标签: jquery html jquery-mobile

已编辑:以下问题不是原始问题。但@ empiric的答案是正确的。

我可以使用vanilla JavaScript代码获取元素赋值变量的值。 如何使用jQuery获取它?

我的部分html如下所示;

<form class="ui-filterable">
    <input data-type="search" id="parentElement-filter" placeholder="Listede ara..." />
</form>

<ul data-role="listview" id="parentElement" data-filter="true" data-input="#parentElement-filter">
    <li>
        <h1> header-1 </h1>
        <p> paragraph-1 </p>
    </li>
    <li>
        <h1> header-2 </h1>
        <p> paragraph-2 </p>
    </li>
    <li>
        <h1> header-3 </h1>
        <p> paragraph-3 </p>
    </li>
    <li>
        <h1> header-4 </h1>
        <p> paragraph-4 </p>
    </li>
</ul>

如何使用jQuery获取部分HTML元素的值?以下代码无效。

var listItems = $("#parentElement");

$.each(parentElement, function(index, item) {

       var itemText = item.find("h1").text();
   // but this works= item.getElementsByTag("h1")[0].innerHTML;

       alert(itemText); 

});

ps:我可以使用.find().children()方法获得价值,但该方法返回了ton值。我想获得像JavaScript这样的纯数据。

修改

这个问题的前主题​​是&#34;获取子元素的已分配jQuery变量的值&#34;

问题的主题是错误的。应该是&#34; Getting child element's value of a partial HTML using jQuery&#34; ...

感谢您快速回复@empiric和@DeeMac。 你是对的......

首先,当我试图简化我的问题时,我犯了错误。 事实上,我的问题是我无法在$ .each循环中捕获标题文本。 因此,它需要为循环中的每个项包装$("item").find("h1").text()。 像这样http://jsfiddle.net/jup6gszo/17/

结果;

$(item).find('h1').text()代码比item.getElementsByTagName("h1")[0].innerHTML

更具可读性

但是,如果我们使用密集数据,$(item).find('h1').text()慢于item.getElementsByTagName("h1")[0].innerHTML(顺便说一句,这对于移动用户来说是一种奇怪的想法)。 以下是结果http://jsperf.com/jquery-find-vs-getelementsbytagname

谢谢...

2 个答案:

答案 0 :(得分:0)

如果我已经理解正确,并且你想要&#39; jquery版本&#39;您目前使用普通javascript做的事情请参阅以下内容:

parentElement.find('h1').html();

更多关于jQuery的信息:

http://api.jquery.com/find/

答案 1 :(得分:0)

如果我做对了,你需要以下内容:

parentElement = $('body');
text = parentElement.find('h1').text();
console.log(text);

<强> DEMO

<强>参考:

.text()