我如何将其转换为jQuery并使其工作

时间:2017-03-01 13:31:45

标签: jquery

div是动态的,但它总是21个字符,并且采用这种格式(7chars) - (13chars)

function Onload() {
    var n = 21;    
    var dh = getElementsByTagName('div');
    if (dh.length == n) {
        dh[0].style.right = 'auto !important';
        dh[0].style.left = '10px !important';
    };
}

使用jQuery捕获它并在加载过程结束时更改样式的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

我从描述中假设您只想影响具有21个字符长度的文本值的div元素。如果是,您可以使用filter()选择它们,然后使用addClass()添加CSS规则。试试这个:

$('div').filter(function() {
  return $(this).text().length == 21;
  // return this.textContent.length == 21; // slightly faster alternative
}).addClass('foo');
.foo { color: #C00; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>foo</div>
<div>1234567-1234567890123</div>
<div>foo</div>

答案 1 :(得分:1)

在HTML页面中链接jQuery,如下所示:

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

现在检查div元素文本的长度值是否为21,那么这应该有效:

// add a onload event to the window
$(window).on("load", function() {
  // loop through the divs
  $("div").each(function() {
    // check to see if the length of the div's text is 21
    if($(this).text().length == 21) {
      // change the div's css
      $(this).css({
        "right": "auto !important",
        "left": "10px !important"
      });
    }
  });
});