获取div的div文本

时间:2013-05-06 08:45:10

标签: javascript jquery

这是迄今为止的代码。我想访问<div class="field-item even">1</div&gt;的值1,然后如果值为1则添加一个类,如果值为0,则添加另一个类。我的代码只访问第一个字段集合容器,我无法弄清楚问题。

$(document).ready(function () {  
        jQuery.each($('.field-collection-container'), function (i, obj) {
            alert($(this).find('.field-items .content .field-item').text());
        })

});

html

<div class="container">
<div class="field-collection-container clearfix">
    <div class="field field-name-field-interview-feeling field-type-field-collection field-label-above">
    <div class="field-label">TEXT</div>
        <div class="field-items">
        <div class="field-item even">
            <div class="field-collection-view clearfix view-mode-full field-collection-view-final">
                <div class="entity entity-field-collection-item field-collection-item-field-interview-feeling clearfix" about="/dtesthkinterview/field-collection/field-interview-feeling/4" typeof="">
                  <div class="content">
                    <div class="field field-name-field-19 field-type-list-boolean field-label-above">
                        <div class="field-label">TEXT</div>
                        <div class="field-items">
                            <div class="field-item even">1</div>
                        </div>
                    </div>
                    <div class="field field-name-field-no-people field-type-list-boolean field-label-above">
                        <div class="field-label">TEXT</div>
                        <div class="field-items"><div class="field-item even">0</div></div>
                    </div>
                    <div class="field field-name-field-untrust field-type-list-boolean field-label-above">
                        <div class="field-label">TEXT</div>
                        <div class="field-items"><div class="field-item even">0</div></div>
                    </div>
                    <div class="field field-name-field-waste-money field-type-list-boolean field-label-above">
                        <div class="field-label">TEXT</div>
                        <div class="field-items"><div class="field-item even">0</div></div>
                    </div>  
                  </div>
                </div>
            </div>
        </div>
        </div>
    </div>
</div>
<div class="field-collection-container clearfix">
.....
</div>
<div class="field-collection-container clearfix">
.....
</div>

7 个答案:

答案 0 :(得分:2)

$('.field-collection-container .field-items .field-item').addClass(function () {
    return $(this).text() === "1" ? "one-class" : "another-class";
});

请注意,您根本不需要.each()

如果您希望有空格,可以使用$.trim($(this).text())

答案 1 :(得分:1)

jQuery.each($('.field-collection-container .field-items .content .field-item'), function (i, obj) {
    if($(this).text() == "1"){
       $(this).addClass("someclass");
    }else if($(this).text() == "0"){
        $(this).addClass("anotherClass");
    }
});

工作示例 http://jsfiddle.net/P9meu/

答案 2 :(得分:0)

 <div class="field-items">
    <div class="field-item even">
        <div class="field-collection-view clearfix view-mode-full field-collection-view-final">
            <div class="entity entity-field-collection-item field-collection-item-field-interview-feeling clearfix" about="/dtesthkinterview/field-collection/field-interview-feeling/4" typeof="">
              <div class="content">
                <div class="field field-name-field-19 field-type-list-boolean field-label-above">
                    <div class="field-label">TEXT</div>
                    <div class="field-items">
                        <div ***id="id1"*** class="field-item even">1</div>
                    </div>

而不是像这样打电话

  $(document).ready(function () {  
    jQuery.each($('.field-collection-container'), function (i, obj) {
        alert($(this).find('.field-items .content .field-item').text());
    })

});

你可以使用id作为div并像这样调用

    $(document).ready(function () {  
    {  
       var t=$("#id").text();
       alert(t);
       if(t==1)
          {
            $("#id1").addClass(".classname");
          }
       else
         {
         if(t==0)
          {
            $("#id1").addClass(".anotherclassname");
          }
         }

     })

答案 3 :(得分:0)

在jsFiddle上查看此示例

http://jsfiddle.net/vijaypatel/Q2GHV/

$(function () {
    $('.field-collection-container').each(function (index, obj) {
        $(this).find('.field-items .content .field-item').each(function (index, obj) {
            alert($(this).text());
            if ($(this).text() == '1') {
                $(this).prop('class','One');
            } else {
                $(this).prop('class','Zero');
            }
        });
    });
});

上面的代码令人担忧的是多个“field-collection-container”并且还修改了奇数偶数元素

答案 4 :(得分:0)

请找到以下代码,我希望它能解决您的问题

$("div.content").find("div.field-item").each(function () {
                if ($(this).html() == 1)
                    $(this).addClass("evenDivClass");
                else if ($(this).html() == 0)
                    $(this).addClass("oddDivClass");
            });

答案 5 :(得分:0)

如果你真的只想在不同的类中使用交替的fielditem div,你可以尝试

$.each($(".field-item").find(".even"), function(i,o){ if(o.textContent==="1") $(o).addClass("some"); if(o.textContent==="0") $(o).addClass("other");)

这是短暂而快速的。

答案 6 :(得分:0)

以下是javascript解决方案的示例

var fieldItems = document.querySelectorAll(".field-collection-container .field-item");

Array.prototype.forEach.call(fieldItems, function (fieldItem) {
    var text = fieldItem.textContent.trim();

    if (text === "0") {
        fieldItem.className += " Zero";
    } else if (text === "1") {
        fieldItem.className += " One";
    }
});

jsfiddle