繁体   English   中英

如果li包含文本,请将更改应用于同一li中的特定div,而不是全部

[英]If li contains text, apply change to specific div in the same li, not all

我有一个项目清单,每个清单都有一个按钮和一个价格。 我能够找到显示“选择选项”的按钮,然后将更改应用于另一个div,但是,它会更改所有<li>的div,而不仅仅是按钮文本出现的那个div。 如何只包含对相关<li>的更改?

 if ($('ul li:contains("Choose Options")')) { $(".p-price").prepend("STARTING AT: "); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li> <em class="p-price">$1.95</em> <div class="ProductActionAdd"> <a href="" class="btn">Add To Cart</a> </div> </li> <li> <em class="p-price">$4.95</em> <div class="ProductActionAdd"> <a href="" class="btn">Choose Options</a> </div> </li> <li> <em class="p-price">$5.95</em> <div class="ProductActionAdd"> <a href="" class="btn">Add To Cart</a> </div> </li> </ul> <script> </script> 

上面的脚本确实找到了“选择选项”文本。 但是随后,它向所有.p-price实例添加了“起始于:”。 我如何只在相同的<li>更改.p-price 这样具有“添加到购物车”按钮的<li>不会在价格前插入文本吗?

我已经读过有关.each()return false和循环的信息,但是不确定是否我在吠叫正确的树,因为我尝试了各种代码迭代,但均以失败告终,但是涉及到特定的if是否包含,再更改一个div,我找不到任何接近的内容。

否, if需要:只需在文本前面添加任何可能存在的匹配元素:

$('li:contains("Choose Options") .p-price').
  prepend("STARTING AT: ");

  $('li:contains("Choose Options") .p-price'). prepend("STARTING AT: "); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <ul> <li> <em class="p-price">$1.95</em> <div class="ProductActionAdd"> <a href="" class="btn">Add To Cart</a> </div> </li> <li> <em class="p-price">$4.95</em> <div class="ProductActionAdd"> <a href="" class="btn">Choose Options</a> </div> </li> <li> <em class="p-price">$5.95</em> <div class="ProductActionAdd"> <a href="" class="btn">Add To Cart</a> </div> </li> </ul> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM