使用javascript仅基于ALT TAG隐藏元素?

时间:2012-07-26 21:00:48

标签: javascript

我有一个wordpress网站,插件使用cufon文本替换。 (我不完全确定这样做的实际方式,但这并不重要。)

我想在特定的一两个字上使用“display:none”。例如,在移动主题上,我想将“联系我们”更改为“联系”。实时隐藏此功能的唯一方法是使用alt标记,因为没有类或ID。

我可以使用JavaScript来检测alt标签“Us”并执行display:none吗?示例代码如下。

<cufon class="cufon cufon-canvas" alt="Us" style="width: 20px; height: 14px; "><canvas width="32" height="17" style="width: 32px; height: 17px; top: -2px; left: -2px; "></canvas><cufontext>Us</cufontext></cufon>

3 个答案:

答案 0 :(得分:2)

如果您知道要搜索的元素标记(我假设您有此信息),您可以在文档中查找所有这些标记并检查alt属性值。当您找到您正在寻找的特定元素时,您可以随心所欲地使用它。在此示例中,我更改了textContent属性。

(function () {
  var li = document.getElementsByTagName('li');

  for ( var i = 0, length = li.length; i < length; i++ )
  {
    if ( li[i].getAttribute('alt') === 'two' ) 
      li[i].textContent = 'New Text';
  }

}).call(this);

直播:http://jsbin.com/ixitut/2/edit

您也可以通过将document更改为更具体的标记来缩小搜索范围。

var searchWithin = document.getElementById(/**/)
var tags = searchWithin.getElementsByTagName(/**/)

https://developer.mozilla.org/en/DOM/element.getElementsByTagName

答案 1 :(得分:0)

我们假设您正在谈论图片,因为这是alt属性唯一相关的地方。

在所有cufon代码上使用.getAttribute(),您可以匹配字符串Us

var cufons = document.getElementsByTagName("cufon");
// Loop over and look for the attr
var num = cufons.length;
for (var i=0; i<num; i++) {
  // If it has an alt attr and matches Us inside word boundaries...
  if (cufons[i].getAttribute('alt') && /\bUs\b/.test(cufons[i].getAttribute('alt'))) {
    // set to display:none
    cufons[i].style.display = "none";
  }
}

答案 2 :(得分:0)

我认为您需要将text标记的<a href="...">Contact Us</a>更改为Contact,并确定link您需要使用标记,在这种情况下,我认为你可以使用rel attribute,即

​<a href="#" rel="us">Contact Us</a>

和javascript将Contact Us更改为Contact您可以使用以下代码

​var links=document.getElementsByTagName('a');
for(var i=0;i<links.length;i++)
{
    var rel=links[i].getAttribute('rel');
    if(rel && rel.match(/^us$/i)) links[i].innerHTML='Contact';
}

DEMO

或者,如果不使用任何属性,您只需检查innerHTML的{​​{1}},如果它包含a tag,则将其更改为Contact US,如下所示

Contact

和javascript将<a href="#">Contact Us</a> 更改为Contact Us您可以使用以下代码

Contact

DEMO

<强>更新

我认为默认情况下,您可以保留var links=document.getElementsByTagName('a'); for(var i=0;i<links.length;i++) { var rel=links[i].innerHTML; if(rel && rel.match(/^Contact Us$/i)) links[i].innerHTML='Contact'; } 而不是link text as Contact并检查是否在任何移动设备中(在桌面浏览器中时),然后将Contact Us更改为{{1使用Contact,即

Contact Us