如何从span-> li-> ul->获取文本元件

时间:2013-07-24 14:46:01

标签: javascript jquery

您好我的购物车满载了Elements 这个Ex中的一个

    <div class="item-container cart-item">
    <div>
    <img border="0" onerror="src='http://www.myengravedjewelry.com/Admin/surfing.jpg'" title="Bloody Mary Style Colour Name Necklace" src="http://www.myengravedjewelry.com/Admin/surfing.jpg" alt="1009">
    <div class="item-header">
    <div class="item-body">
    <ul class="item-ul">
    <li>
    <li>
   <li>
    <span class="bold-14">Price:14.9 </span>
    </li>
      <li>
  <span>ShortId:1010 </span>
   </li>
   <li>
   <span>LongId:110-01-073-10 </span>
   </li>
      <li>
    <span class="spanDefCat">DefaultCat:334 </span>
    </li>
    </ul>
    </div>
    </div>
    <div class="item-footer"></div>
    </div>

当我按下保存时,我会去除每个元素并检查DefaultCat == 0

var elements = document.getElementsByClassName("cart-item");

我尝试按照这个

来达到这个defaulCat
for(i=0;i<elements.length;i++){


        var elementContent=elements[i].find(".spanDefCat").html();
        var vars = elementContent.split(" ");
        var obj = {};
        vars.forEach(function(v) {
        var keyValue = v.split(":");
        obj[keyValue[0]] = keyValue[1];


    });
           DefaultCat = obj["DefaultCat"];
           ShortId = elements[i].children[1].alt;//New  style to take ShortID
            if(DefaultCat==0)setDefaultCatToProductId(parseInt(ShortId));
            arrSortedOrder[i]=parseInt(ShortId);

    }

任何人都知道如何获得这个价值? P.S Plz不要给我$(。spanDefCat)的解决方案因为当我发现deff = 0时我需要从这个元素中获取ShordId [i]

2 个答案:

答案 0 :(得分:2)

试试这个:

$(".cart-item").each(function(){
    var shortId = $(this).find(".bold-14").parent("li").siblings("li").children("span").html();
    var shortItem = shortId.replace(' ','').split(":");
    var defaultCat = $(this).find(".spanDefCat").html();
    var item = defaultCat.replace(' ','').split(":");  
    if(item[1]==0){
        var id = parseInt(shortItem[1]);
        //do something
    }else{
        var id = parseInt(shortItem[1]);
        //do something else
    }
    console.log(defaultCat);
    console.log(shortId);
});  

注意: 以上代码为您提供 DefaultCat:334 ShortId:1010 ,现在您可以使用两者都在if else声明中 如果 DefaultCat:334 的格式对于所有购物车商品都相同,那么您可以检查它是否 0

JSFIDDLE DEMO

答案 1 :(得分:1)

我看到了JQuery标签,所以我给你一个关于JQuery语句的回复。

$(".cart-item").find(".spanDefCat").each(function(index, domEle){
    //get text, delete spaces and split
    split_result = $(domEle).text().replace(' ','').split(":");
    //get only numeric value as string
    defaultCat = split_result[1];
    //parse into int
    defaultCat = parseInt(defaultCat);
    //if your var is equal to 0
    if(defaultCat == 0){
        /********************* 
        * Type you code here *
        **********************/
    }
});