-1

アラート ボックスに「this」インスタンスを出力すると、このようなものが出力されます。

[object Object]

しかし、その実際の内容は

<dl>
   <dt>
       my Name <span> John Krishna </span>
   </dt>
   <dd>
       <span>My fathers name</span>
   </dd>
 </dl>

[object Object] ではなく、'my Name' のみを表示したい。その 'dt' のスパンの内容をアラート ボックスに表示したいという意味です。

このために、私はグーグルで試してみました。子を使用する、または内部のhtmlコンテンツを使用するなどのソリューションを取得し、いくつかのソリューションでは誰かがループ用に作成しました。しかし、コードが大きくなる for ループを書きたくありません。

アラートボックスに「私の名前」だけを印刷する方法を教えてください。

4

7 に答える 7

5

どのように選択したかによります。dlタグ全体にある場合は、次のようになります

alert($("dl").find("dt").clone().find("span").remove().end().html());

dl は選択例です。どうやってそれを取得するのかわかりません(ID、クラスなどで)

dtタグを直接選択している場合は、短いバージョンを使用する必要があります

alert($("dt").clone().find("span").remove().end().html());
于 2013-08-01T09:31:56.750 に答える
1

オブジェクト全体に警告しようとしているように思えます。要素のテキストのみを表示するには、 jQuery のtext()メソッドを使用する必要があります。

this目的の要素をすでに選択している場合はspan、次を使用できます。

alert($(this).text()); // Instead of alert($(this));

「dt」内のテキストのみが必要で、スパン内のコンテンツは印刷しないでください

このために、正規表現を使用して要素の HTMLの<span>コンテンツを置き換えることができます。dt

alert($('dt').html().replace(/<span>.*<\/span>/,''));

これを使用したJSFiddle デモを次に示します。

以下の他の回答のいくつかが示唆しているように、これは要素のクローンを使用するよりも96% 高速です。

于 2013-08-01T09:24:11.167 に答える
0

マップしてみてください: $ を 2 回呼び出す代わりに、それらを配列に収集します。

var texts = $('span').map(function(){
    return this.previousSibling.nodeValue
});
texts[0]; // "Some text followed by "
texts[1]; // " and another text followed by "
alert(texts[0]);

それが役立つことを願っています

于 2013-08-01T09:41:23.837 に答える
0

スパンに id を追加し (例: <span id="myname">Test Name</span>)、jQuery で id を照合し ( を使用$("#myname"))、その要素のテキストを警告して、必要なものを返します。

例えば:

alert($("myname").text());
于 2013-08-01T09:25:40.090 に答える
-1

以下を使用する必要があります。

$(this).html();
于 2013-08-01T09:23:32.360 に答える
-1

使用する:

alert($(this).find("dt span").text());

範囲外のテキストを取得することは、jQuery では少しトリッキーです。私はこのコードを見つけまし:

var myName = $(this).find("dt")
    .clone()    //clone the element
    .children() //select all the children
    .remove()   //remove all the children
    .end()  //again go back to selected element
    .text(); 
于 2013-08-01T09:25:04.227 に答える
-1
try this:

     var name=$(this).children('dt').children('span').text();
     alert('name --->'+name);

ありがとう

于 2013-08-01T09:31:48.737 に答える