0

私はjsが初めてで、問題があります。私はこのhtmlマークアップを持っています:

<div id="searchBar">
  <div>
    <a>some link </a>
    <span>some text </span>
  </div>
</div>

そして、jsスクリプトを使用した後、これを取得したい:

<div id="searchBar">
  <div>
    <div class="toplink_bl">
      <a>some link </a>
      <span>some text </span>
    </div>
  </div>
</div>

しかし、何かが間違っていて、私はこれを取得します:

<div id="searchBar">
  <div>
      <a>some link </a>
      <span>some text </span>
      <div class="toplink_bl"></div>
  </div>
</div>

ここにjsコードがあります:

 var toplink_div=document.createElement('div');
 toplink_div.className="toplink_bl";
 $(toplink_div).appendTo($("#searchBar div"));
 for(var i = 0; i < $("#searchBar div").childNodes.length; i++) {
  toplink_div.appendChild($("#searchBar div").childNodes[i]);
 };

UPD:
@Ricky Stam、ありがとう、うまくいきます!同じ問題を解決できますか?私はあなたのコードに新しい行を追加しました:

<div id="searchBar">
  <div class="inner">
    <a>some link </a>
    <span>some text </span>
    <input type="text" class="searchInput" value="" name="q" id="keywords" tabindex="1">
  </div>
</div>

<div class='new'>そして、2つの要素を含めたいのですが、そうでは<a>あり<span>ません<input>
したがって、使用後は$( ".inner" ).wrapInner( "<div class='new'></div>");次のようになります。

<div id="searchBar">
  <div class="inner">
    <div class='new'>
      <a>some link </a>
      <span>some text </span>
    </div>
    <input type="text" class="searchInput" value="" name="q" id="keywords" tabindex="1">
  </div>
</div>

これどうやってするの?

4

2 に答える 2

4

HTML

<div id="searchBar">
  <div class="inner">
    <a>some link </a>
    <span>some text </span>
  </div>
</div>

Javascript

$( ".inner" ).wrapInner( "<div class='new'></div>");

これにより、class="new" の div 内の "inner" div 内にすべてが配置されます。

于 2013-11-12T10:49:35.373 に答える
0

代わりにprependToを使用する必要があります。

彼らの例に従って、これは:

<h2>Greetings</h2>
<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>

このコードで:

$( "<p>Test</p>" ).prependTo( ".inner" );

結果は次のようになります。

<h2>Greetings</h2>
<div class="container">
  <div class="inner">
    <p>Test</p>
    Hello
  </div>
  <div class="inner">
    <p>Test</p>
    Goodbye
  </div>
</div>

したがって、コードを次のように変更します。

 var toplink_div=document.createElement('div');
 toplink_div.className="toplink_bl";
 $(toplink_div).prependTo($("#searchBar div"));
 for(var i = 0; i < $("#searchBar div").childNodes.length; i++) {
  toplink_div.apendChild($("#searchBar div").childNodes[i]);
 };

ここで実行されていることがわかります: http://jsfiddle.net/WRWy5/1/

于 2013-11-12T10:48:17.037 に答える