如果包含cetain文本,则设置范围边距

时间:2017-11-22 07:45:41

标签: javascript jquery html css

你能帮我吗,请怎么做:

如果跨度包含此文本“-1 - ”,则为每个class =“topic_item”范围设置30px的余量?

跨度看起来像这样,你可以在文本里面看到“-1-”应该触发边距:

<span class="topic_item">
    <a class='topic-completed' href='http://www.pplkonyv.hu/topic/1-1-1-sebesseg-es-gyorsulas/' title='1-1-1 Sebesség és gyorsulás'>
        <span>1-1-1 Sebesség és gyorsulás</span>
    </a>
</span>

非常感谢您提前

安德拉什

5 个答案:

答案 0 :(得分:0)

您可以尝试使用jquery获取条件允许保证金

$('.topic-completed > span :contains("-1-")').each(function () {
    $(this).css('margin',"30px");
});

答案 1 :(得分:0)

纯粹的js方法;

使用过滤器,包括,地图,最近的祖先;

let allInnerSpans = document.getElementsByClassName("innerSpan");

let filteredSpans = Array.from(allInnerSpans).filter((span) => {
	return span.innerHTML.includes('-1-');
});
for(i=0;i<filteredSpans.length;i++) {
filteredSpans[i].closest(".topic_item").style.margin = '30px';
}
<span class="topic_item">
    <a class='topic-completed' href='http://www.pplkonyv.hu/topic/1-1-1-sebesseg-es-gyorsulas/' title='1-1-1 Sebesség és gyorsulás'>
        <span class="innerSpan">1-1-1 Sebesség és gyorsulás</span>
    </a>
</span>

答案 2 :(得分:0)

你可以使用jquery最接近并包含它来实现它。这是工作代码

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>

<span class="topic_item">
    <a class='topic-completed' href='http://www.pplkonyv.hu/topic/1-1-1-sebesseg-es-gyorsulas/' title='1-1-1 Sebesség és gyorsulás'>
        <span>1-1-1 Sebesség és gyorsulás</span>
</a>
</span>
</div>
<div>

<span class="topic_item">
    <a class='topic-completed' href='http://www.pplkonyv.hu/topic/1-1-1-sebesseg-es-gyorsulas/' title='1-1-1 Sebesség és gyorsulás'>
        <span> Sebesség és gyorsulás</span>
</a>
</span>
</div>
<div>

<span class="topic_item">
    <a class='topic-completed' href='http://www.pplkonyv.hu/topic/1-1-1-sebesseg-es-gyorsulas/' title='1-1-1 Sebesség és gyorsulás'>
        <span>1-1-1 Sebesség és gyorsulás</span>
</a>
</span>
</div>

jquery的

$('.topic-completed > span:contains("-1-")').closest('.topic_item').css('margin', "30px");

答案 3 :(得分:0)

纯Javascript(Vanilla)方法:

var topics = document.querySelectorAll(".topic_item");
var searchingTag = '-1-';
for (var i = 0; i < topics.length; i++) {
  var topicCompleted = topics[i].childNodes[1];
  var yourText = topicCompleted.innerText;
  // indexOf approach
  if(yourText.indexOf(searchingTag) !== -1){
      topicCompleted.style = 'margin-left: 30px';
  }
 }

 //ES6 approach
 // if(topicCompleted.innerText.includes('-1-')) { /*...*/ }



 //RegExp approach
 // var string = topicCompleted.innerText,
 // expr = /-1-/;
 // if(expr.test(string)) { /* ...*/ }

JsFiddle:https://jsbin.com/jukiyuzoli/edit?html,js,output

答案 4 :(得分:0)

jQuery似乎最简单:

$( "a.topic-notcompleted:contains('-1-')" ).css( "margin-left", "21px" );