5

リンク(a-tag)が段落タグ(p)内の唯一のコンテンツ(唯一の子ではない)であるかどうかを確認する必要があります。したがって、pタグが次のようになっている場合:

<p>Here we have some text inside the p-tag. Then there's <a href="#">link</a>.</p>

<a>テキストもあるため、pタグ内のコンテンツはタグだけではありません。

ただし、<p>タグが次のようになっている場合:

<p><a href="#">Nothing but a link inside this p-tag</a></p>

タグ内の唯一のコンテンツ<p>はリンクです。

<p>タグにタグのみが含まれている場合<a>、特定のクラスをタグに追加したいと思い<a>ます。

私はこのコードを使用していました:

$("#MainColumn p a:only-child").addClass("singleLink");

ただし、このコードは、aタグがpタグの唯一の子であるかどうかのみをチェックし、それが唯一のコンテンツであるかどうかはチェックしません。これは私が現在立ち往生しているところです。

4

4 に答える 4

1

これを試して:

  $('#MainColumn p a').each(function(){
    var p = $(this).parent().text().length;
    var s = $(this).text().length;
    if (p == s) {
        $(this).addClass('singleLink')
    }
  })

http://jsbin.com/ewoqoy/2/

于 2012-06-13T13:00:07.973 に答える
1

1つのセレクターで非常に簡単にできます。

var $content = $("#MainColumn p:has(a)").filter(function() {
    return $(this).contents().length === 1;
}).children('a').addClass("singleLink");

ライブデモ

于 2012-06-13T12:56:47.693 に答える
1

これはあなたが除いているものだと思います

String.prototype.startsWith = function(prefix) {
    return this.indexOf(prefix) === 0;
}

String.prototype.endsWith = function(suffix) {
    return this.match(suffix+"$") == suffix;
};

var html = $("#myP").html();
if($("#myP p:only-child")){
if(html.startsWith("<p>") && html.endsWith("</p>")){
alert("hi");
}
}

<div id="myP"><p >Sample Text inside a <b>p</b> element</p></div>
于 2012-06-13T13:53:54.530 に答える
-2

うーん...コンテンツが「http://」または「www」で始まるかどうかを確認できるかもしれません。

if($("#MainColumn p a:only-child").text().indexOf("www") != -1 {


}

リンクも「コンテンツ」であるため、「コンテンツ」と「コンテンツなし」を区別することはできません。あなたは「あなたのコンテンツ」がどのように定義されているかを言わなければなりません。

于 2012-06-13T13:02:33.487 に答える