属性从选择器开始 - CSS更改

时间:2016-02-03 20:06:38

标签: javascript jquery css

编码不是那么好,而是学习。想知道这是否可行,在网站/论坛上找不到足够接近的东西。

我正在使用tampermonkey / greasemonkey和jquery。

尝试选择网站每个网页上的特定元素,但第一个ID标记是随机的。试着添加一个带有TEST一词的Div。

我正在尝试的代码:( "<p>Test</p>" ).insertAfter( "div[id^='#highlight_panel_'] > div.efhpContainer > table > tbody > tr > td.efhpLeftContent > div:nth-child(4)" );

被修改 好吧,也许我让那令人困惑?大声笑。不在乎它是否凌乱(有人问)

所以说我点击链接,我得到:

#highlight_panel_34sdf3e2 > div.efhpContainer > table > tbody > tr > td.efhpLeftContent > div:nth-child(4)

现在,如果我点击其他链接,我会得到:

#highlight_panel_23vs87y334r3rkfi > div.efhpContainer > table > tbody > tr > td.efhpLeftContent > div:nth-child(4)

每个链接都有自己唯一的ID。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的代码很难理解,我认为您需要花时间进行重构。

顺便说一句,jQuery支持css语法,所以,你总是可以通过&#34;通配符&#34;。 这是一个有效的例子:

&#13;
&#13;
function RandomIDCtrl($) {
  
  var tpl = '<div class="js_injected">Test</div>';
  var randomElement = $('[id^="someRandomID_"]');
  var context = $('td > div:nth-child(4)', randomElement);
  
  console.log(context);
  
  $(tpl).insertAfter(context);
}

jQuery(document).ready(RandomIDCtrl);
&#13;
td div {
  min-height: 30px;
  padding: 10px 20px;
}

table { width: 100%; }

td div:nth-child(1) { background: green;}
td div:nth-child(2) { background: yellow;}
td div:nth-child(3) { background: blue;}
td div:nth-child(4) { background: lightseagreen;}

.js_injected {
  background: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="someRandomID_2">

  <table>
    <tbody>
      <tr>
        <td>
        <div> child 1</div>
        
        <div> child 2</div>
        
        <div> child 3</div>
        
        <div> child 4</div>
          
        </td>
      </tr>
    </tbody>
  </table>
  
</div>
&#13;
&#13;
&#13;