使用JavaScript从锚标记中提取锚文本

时间:2013-10-07 14:13:14

标签: javascript text anchor

我最近发布了一个问题,即使用javascript从锚标记中提取锚文本。我得到了一个答案。

然而,该代码在IE和Chrome中有效,但在Firefox中无效。

function extractText(){
    var docId = "10";
    var cId = "13";
    var dName = "ASPIRIN/COUMARIN";
    var anchText = "<a target=\"_blank\" href=hello?docId=" + docId + "&cId=" + cId +">" + dName +"</a>";
    var str1 = document.createElement('str1');      

    str1.innerHTML = anchText;
    var anc = str1.innerText;

    alert(anc);

    return anc;
}

我认为innerTextinnerHTML或两者的属性在firefox中不起作用。您可以帮助上述代码适用于IE,Chrome,Firefox等。

2 个答案:

答案 0 :(得分:0)

Firefox似乎不支持innerText属性,更喜欢使用W3C的textContent标准:

function extractText() {
    var docId = "10";
    var cId = "13";
    var dName = "ASPIRIN/COUMARIN";
    var anchText = "<a target=\"_blank\" href=hello?docId=" + docId + "&cId=" + cId + ">" + dName + "</a>";
    var str1 = document.createElement('str1');

    str1.innerHTML = anchText;
    var anc = (str1.innerText || str1.textContent);

    console.log(anc);

    return anc;
}

extractText();

JS Fiddle demo

假设您要避免在每次通话时检查这两个属性,您只需检查浏览器支持的内容,即:

var textProperty = 'textContent' in document ? 'textContent' : 'innerText';

然后使用如下:

var anc = str1[textProperty];

JS Fiddle demo

参考文献:

答案 1 :(得分:0)

Firefox中使用的W3C标准的

textContentinnerText

的替代方案