对于那些在家中选择jquery的人来说,这应该是一个简单的答案,所以我走了。
我有这段HTML:
<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”类。
谢谢!
答案 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);
答案 2 :(得分:0)
你可以在每个功能中使用它。
var value = "";
$(".cooljob-subitem").each(function(){
value += $(this).find("span").text();
});
console.log(value);
答案 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(";");