0

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

我只想在一两个特定的单词上使用“display:none”。例如,在移动主题上,我想将“联系我们”更改为仅“联系”。即时隐藏它的唯一方法是使用 alt 标签,因为没有类或 ID。

那么我可以使用 JavaScript 来检测 alt 标签“Us”并显示: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>
4

3 回答 3

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

于 2012-07-26T21:12:41.883 回答
0

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

.getAttribute()在所有标签上使用cufon,您可以匹配字符串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";
  }
}
于 2012-07-26T21:04:56.520 回答
0

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

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

和javascript更改Contact UsContact您可以使用以下代码

​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';
}

演示

或者,不使用任何属性,您只需检查 的innerHTMLa tag如果它包含,Contact US则将其更改Contact为如下

<a href="#">Contact Us</a>

和javascript更改Contact UsContact您可以使用以下代码

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并检查是否不在任何移动设备中(在桌面浏览器中时)然后将其更改ContactContact Ususing javascript,即

var ismobile=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i); // May be these are not enough but only an example
if(!ismobile){
    // one of above code snippets
}
于 2012-07-26T21:30:15.027 回答