Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery属性选择器_Javascript_Jquery_Html_Dom - Fatal编程技术网

Javascript Jquery属性选择器

Javascript Jquery属性选择器,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我有一个变量(div元素),它包含一些表html 我可以使用这个javascript向每个具有背景集的单元格添加一个类 var tds = tempDiv.getElementsByTagName("TD"); for (var j = 0; j < tds.length; j++) { var oTd = tds[j]; if (oTd.style.background.length > 0) { oTd.className = 'faketh

我有一个变量(div元素),它包含一些表html

我可以使用这个javascript向每个具有背景集的单元格添加一个类

  var tds = tempDiv.getElementsByTagName("TD");
  for (var j = 0; j < tds.length; j++) {
    var oTd = tds[j];

    if (oTd.style.background.length > 0) {
      oTd.className = 'faketh';
      oTd.setAttribute('style', 'Clear');
    } //if
  }//for
任何帮助都将不胜感激

编辑: 只是补充一句;我使用下面的代码没有问题

  $(tempDiv).find("tr:odd").addClass('row0');
  $(tempDiv).find("tr:even").addClass("row1");
所以问题不在于增加类。。。问题是我找不到任何匹配的元素。这是td元素之一

<td valign="top" class="faketd" style="border: 1pt solid windowtext; padding: 0cm 5.4pt; background: silver none repeat scroll 0% 0%; width: 131.4pt; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;">
        <p style="margin: 0cm 0cm 0pt; text-align: justify;"><strong>VPN Name/Description:</strong></p>
        </td>

VPN名称/描述:

试试这个

$(tempDiv).find("td[style*=background]").addClass("faketh");
编辑 为了防止选择具有某种“背景”的元素,您还可以执行以下操作

$(tempDiv).find("td[style*=background]:not(td[style*=background-])").addClass("faketh");
但是,如果一个元素同时具有“background:blabla”和“background color:#FFF”,它将不会被选中

$(tempDiv).find("td[style*=background]").addClass("faketh");
编辑 为了防止选择具有某种“背景”的元素,您还可以执行以下操作

$(tempDiv).find("td[style*=background]:not(td[style*=background-])").addClass("faketh");

但是,如果一个元素同时具有“background:blabla”和“background color:#FFF”,它将不会被选中,这取决于tempDiv是什么,您还应该能够通过执行以下操作来缩短它:

$(tempDiv + " td[style*=background:]").addClass("faketh");

根据tempDiv是什么,您还应该能够通过执行以下操作来缩短它:

$(tempDiv + " td[style*=background:]").addClass("faketh");

您正在搜索字符串“background:”,但在您给出的示例中,它使用的是“background color:”

因此,将其更改为:

$(tempDiv).find("td[style*=background-color:]").addClass("faketh");
或:


您正在搜索字符串“background:”,但在您给出的示例中,它使用的是“background color:”

因此,将其更改为:

$(tempDiv).find("td[style*=background-color:]").addClass("faketh");
或:

一些警告:

  • 样式选择器的内容应该按照您在问题中的方式被引用(检查中的示例),而不是按照其他人的建议被取消引用
  • 在jQuery属性选择器中检查样式属性时要小心。浏览器可能会修改字符串的内容(重新排序、冒号周围的间距等)以实现其内部表示,每个浏览器的做法略有不同
最重要的一点是:

  • 您正在使用Firefox吗?我在Firefox中遇到过一两次属性选择器问题,因此如果您只在Firefox中测试过,请检查Chrome/IE/Safari/Opera/等。这不会解决问题,但可能会为您提供不同的范围
    • 一些警告:

      • 样式选择器的内容应该按照您在问题中的方式被引用(检查中的示例),而不是按照其他人的建议被取消引用
      • 在jQuery属性选择器中检查样式属性时要小心。浏览器可能会修改字符串的内容(重新排序、冒号周围的间距等)以实现其内部表示,每个浏览器的做法略有不同
      最重要的一点是:

      • 您正在使用Firefox吗?我在Firefox中遇到过一两次属性选择器问题,因此如果您只在Firefox中测试过,请检查Chrome/IE/Safari/Opera/等。这不会解决问题,但可能会为您提供不同的范围

      我认为您无法在jQuery中使用本机选择器来实现这一点。浏览器不会将“样式”属性存储为字符串,它是一个对象

      然而,它已经实施:

      或者,您也可以使用$。每种形式,例如:

      或者您可以使用jQuery过滤器:

      var x = $("#tempDiv td").filter(function(i){
          return $(this).css("background").length > 0;
      });
      

      我不认为在jQuery中使用选择器就可以做到这一点。浏览器不会将“样式”属性存储为字符串,它是一个对象

      然而,它已经实施:

      或者,您也可以使用$。每种形式,例如:

      或者您可以使用jQuery过滤器:

      var x = $("#tempDiv td").filter(function(i){
          return $(this).css("background").length > 0;
      });
      

      您知道背景设置为什么或只是查找任何值吗?您知道背景设置为什么或只是查找任何值吗?请仔细检查。。。否。删除单引号没有任何区别:(不会删除:意味着我现在将匹配背景色等属性。我只是在背景属性之后。删除冒号并…不。:(太奇怪了,它不起作用…我看对了。请仔细检查…不。删除单引号没有任何区别。:)(不会删除:表示我现在将匹配属性,如背景色等。我只是在背景属性之后。删除冒号并…不:)(奇怪的是,它不起作用……在我看来是对的。你说得很对,我的示例td html元素不正确。我已经修改了它。一些td元素确实有背景颜色属性,我不在乎。我只想在背景上匹配。你说得很对,我的示例td html元素不正确。我修改了它。一些td元素确实有一个背景颜色属性,我不在乎。我只想在背景上匹配。还没有测试过这个…但这是这里的最佳答案…希望能起作用;)还没有测试过这个…但这是这里的最佳答案…希望能起作用;)