根据兄弟文本值

时间:2016-03-08 09:19:39

标签: jquery

如何根据.layer-info中的值设置.score-java的宽度? 9.8的十进制数将为98%宽度,9将为90%等。以下是代码:

<div class="layer">
    <div class="layer-info">Result</div>
</div>
<span class="score-java">9.8</span>
var score = $(".score-java").text();
$(".layer-info").css('width', parseFloat(score) * 10 + '%');

我到目前为止这个代码,但如果我有多个图层并且我想根据其子元素设置宽度,那该怎么办呢。

4 个答案:

答案 0 :(得分:1)

那时你必须迭代每个元素并设置它的宽度,

auto it = std::find(my_vec.begin(),my_vec.end(),SOME_VALUE);
my_vec.erase(it,my_vec.end()); // Erase everything from 'it' and beyond
  1. 要迭代每个元素,您可以使用System.Diagnostics.Process process; System.Diagnostics.ProcessStartInfo processStartInfo; new InteropPermission(InteropKind::ClrInterop).assert(); process = new System.Diagnostics.Process(); processStartInfo = new System.Diagnostics.ProcessStartInfo(); processStartInfo.set_FileName("C:\\temp\\testbat.bat"); //processStartInfo.set_Arguments("Value1 Value2 Value3"); process.set_StartInfo(processStartInfo); process.Start(); process.WaitForExit(); info("Finished");
  2. $(".layer .layer-info").css('width', function(){ return parseFloat($(this).closest(".layer").next(".score-java").text()) * 10 + '%'); }); 函数
  3. callBack将根据提供的选择器抓取最接近的soruce元素的父级。
  4. .css()将获取源元素的下一个元素兄弟。
  5. DEMO

答案 1 :(得分:1)

如果是多个.next() ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} -std=c++11 -lboost_locale 元素,您可以使用循环来检索每个.layer元素,然后从中遍历以设置它的宽度{sibling { {1}}元素,如下所示:

.score-java

Working example

答案 2 :(得分:1)

这里我的代码是它的作品尝试。

<script> $(document).ready(function(){
 $('.layer-info').each(function() {
  var score = $(this).closest(".layer").next(".score-java").text();
  $('.layer-info').attr("style",'width='+parseFloat(score) * 10+'%;');
 });
});
</script>

答案 3 :(得分:0)

我应该制作一个额外的容器,在本例中为score,以便让自己更清楚。

&#13;
&#13;
$(".score").each(function(index) {
  var $self = $(this);
  var score = $self.find(".score-java").text();
  $self.find(".layer-info").css('width', parseFloat(score) * 10 + '%');
  // if you want to expand your score functionality, you can reach every element that you want.
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="score">
  <div class="layer">
    <div class="layer-info">Result</div>
  </div>
  <span class="score-java">9.8</span>
</div>
&#13;
&#13;
&#13;