需要JQuery选择帮助

时间:2015-02-05 12:18:53

标签: javascript jquery html

对于那些在家中选择jquery的人来说,这应该是一个简单的答案,所以我走了。

我有这段HT​​ML:

<div class="cooljobdom-subdomains"> cooljobdom
    <div class="cooljob-subitem"> subitem
        <input class="variable_class" type="checkbox">
        <label> label 1
            <span class="AAA"></span>
            <span class="block-middle">city1</span>
            <span>address1</span>
           </label>
        </input>
    </div>
    <div class="cooljob-subitem"> subitem
        <input class="variable_class" type="checkbox">
        <label> label 2
            <span class="BBB"></span>
            <span class="block-middle" >city2</span>
            <span>address2</span>
           </label>
        </input>
    </div>
    <div class="cooljob-subitem"> subitem
        <input class="variable_class" type="checkbox">
        <label> label 3
            <span class="CCC"></span>
            <span class="block-middle">city3</span>
            <span>address3</span>
           </label>
        </input>
    </div>
</div>

我想在选择结果中使用以下字符串: city1,地址1;城2 1,地址;请分享帮助,地址3。

sofar我有这个选择:

var value = $(".cooljobdom-subdomains .cooljob-subitem .block-middle").text();
value += $(".cooljobdom-subdomains .cooljob-subitem .block-middle").next().text();
alert(value);

但这给了我city1city2city3address1address2address3。

请记住,有一个可变数量的div,其中包含“cooljob-subitem”类。

谢谢!

6 个答案:

答案 0 :(得分:1)

您可以使用

var value = $(".cooljobdom-subdomains .cooljob-subitem .block-middle").map(function () {
    return $(this).text() + ',' + $(this).addBack().text()
}).get().join(';');
console.log(value)

答案 1 :(得分:0)

也许它不是最有效的解决方案,但您可以尝试以下方法。使用each()函数,您可以在每个cooljob-subitem元素上创建一个循环。然后,您可以使用find()查看其后代,最后使用html()获取html内容。

var result = '';

$('.cooljob-subitem').each(function()
{
    result += $(this).find('.block-middle').html() + ',';
    result += $(this).find('span:last-child').html() + ';';
});

result = result.slice(0,-1);

alert(result);

Fiddle

答案 2 :(得分:0)

你可以在每个功能中使用它。

var value = "";
$(".cooljob-subitem").each(function(){
    value += $(this).find("span").text();
});
console.log(value);

http://jsfiddle.net/v1xou7h7/

答案 3 :(得分:0)

var value = "";
var len = $(".cooljobdom-subdomains .cooljob-subitem .block-middle").length;
$(".cooljobdom-subdomains .cooljob-subitem .block-middle").each(function(index, element){
    value += $(this).text() + "," + $(this).next().text();
    if (index < len - 1) {
        value += "; ";
    } else {
       value += ".";
    }
});
alert(value);

答案 4 :(得分:0)

因为你有三个名为“.block-middle”的类

最好的解决方案是,如果你通过每个类。

$('.block-middle').each(function(){
    // you now can get each of the elements with $(this) - so..

    var value1 = $(this).text;
    var value2 = $(this).next().text();
    var text = value1 + ', ' + value2;

    alert(text);
});

问候

答案 5 :(得分:0)

你也可以在一行中这样做。

http://jsfiddle.net/or18dus3/1/

var value = $.map($(".cooljobdom-subdomains .cooljob-subitem  .block-middle"), function(obj, i){
   return $(obj).text().concat(",", $(obj).next().text());
}).join(";");