Получать унифицированные указатели ресурса всех элементов <a> внутри div

Я хочу скопировать urls (href) всех "a" внутри div, но у этого есть много укрытых элементов. Серьезный как, чтобы это копировать?

Это был бы пример:

<div id="enlaces">
    <div id="tabla">
        <div >
            <table>
                <tbody>
                    <tr>
                        <td>
                            <table>
                                <tbody>
                                    <tr>
                                        <td>
                                            <a href="http:www.google.com">></a>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                        <a href="http://www.facebook.com">

                                        </a>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                        <td>
                            <table>
                                <tbody>
                                    <tr>
                                        <td>
                                            <a href="http://www.google.com"></a>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td><a href="http://www.google.com"></a>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                        <td>
                            <table>
                                <tbody>
                                    <tr>
                                        <td>
                                            <a href="http://www.google.com"></a>
                                        </td>
                                    </tr>
                                    <tr >
                                        <td><a href="http://www.google.com"></a>
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </td>
                        <td>
                            <table>
                                <tbody>
                                    <tr>
                                        <td>
                                            <a href="http://www.google.com"></a>
                                        </td>
                                    </tr>

                                </tbody>
                            </table>
                        </td>
                    </tr>
                </tbody>
            </table>
</div>

Я пробовал с getElemenById, но скопируй все. И только я хочу скопировать "a".

1
задан 13.10.2016, 02:31
4 ответа

Чтобы выбирать sГіlo некие элементы ты можешь использовать document.querySelectorAll().

Например:

var as = document.querySelectorAll('#tabla a');

Это возвращает тебе список узлов, который является договоренностью, и ты можешь использовать это, чтобы помещать их, где ты нуждался.


, Чтобы доставать sГіlo urls, потом ты можешь повторять в такой договоренности:

var urls = [];
for (var i = 0; i < as.length; i++) {
   urls.push(as[i].href);
}
2
ответ дан 24.11.2019, 13:07
  • 1
    он возвращает мне договоренность, но так: < в href = и quot; facebook.com " > < / a> –  hblackpro 13.10.2016, 01:55
  • 2
    как он был бы для того, чтобы он только вышел facebook.com? –  hblackpro 13.10.2016, 01:55
  • 3
    без < a> < / a> –  hblackpro 13.10.2016, 01:56
  • 4
    Ты должен повторять на элементах и доставать стоимость href. Что-то подобное в и # 241; adire в ответе –  David Silva 13.10.2016, 01:59
  • 5
    какая-то идея, чтобы исследовать? –  hblackpro 13.10.2016, 01:59

Обрежь использовать

var elts = document.getElementsByTagName('a');

, где он возвратит тебе array со всеми "a"

0
ответ дан 24.11.2019, 13:07
  • 1
    привет. если он дает договоренность. но как он был бы для того, чтобы только вышла ссылка без этикеток в –  hblackpro 13.10.2016, 01:59
  • 2
    document.getElementsByTagName (и #39; в и # 39;) [0] .getAttribute (" href"); так, таким образом, он даст тебе первого " a" который он нашел. Если queres все он использует for или foreach, и навяжи ему href в новый array –  Franco Manzur 13.10.2016, 02:01

PerdГІn, я не могу высказывать мнения. Мне не удается понять хорошо то, что ты planteГ s; asГ¬ что если podГЁs hacГЁmelo знать и издало ответ в funciГІn в это.

то, что я изначально понимаю, что querГЁs брать все элементы anchor (a) и делать копию тех же самых... однако, я верю в то, что то, что ты querГЁs делать значит клонировать.

Для этого podГЁs использовать mГЁtodo "cloneNode" на каждом элементе. Чтобы выбирать эти элементы, podГЁs использовать mГЁtodo "querySelectorAll":

document.querySelectorAll('div#tabla > a')

Это будет возвращать тебе объект NodeList ( https://developer.mozilla.org/es/docs/Web/API/NodeList ) на cuГ l podГЁs повторять с for . В элементы этого списка accedГЁs посредством Г¬ndice, как в нормальном Array.

Итак, mГЁtodo querySelectorAll получает селектор CSS ( http://www.w3schools.com/cssref/css_selectors.asp ). В предыдущем случае, 'div#tabla> в' покажи, что он был выбран и возвратил NodeList со всеми элементами внутри div с идентификацией 'таблицей' (показанный после подушечки / числительного #).

то, что он остается сделать, состоит в том, чтобы повторять на этом списке узлов, и клонируя каждый элемент. Я буду предполагать, что querГЁs получать список этих клоунов, и я буду помещать это в одну funciГІn, потому что правда я не знаю контекст:

'use strict';

const COPY_CHILD_NODES = true; // En caso de que tenga childs, clonarlos tambièn.

const clonedNodes = (css_selector) => {
   let clones = [];
   const nodes = document.querySelectorAll(css_selector);
   for (let node_index = 0; node_index < nodes.length; node_index++) {
      clones.push(nodes[node_index].cloneNode(COPY_CHILD_NODES));
   }
   return clones;
}

const cloned_a = clonedNodes('div#tabla > a');

"cloned_a" contendrГ¬a копии этих элементов, в array comГ№n, и deberГ¬as повторять на этих клоунах и делать, что ты захотел, например, добавить их к другому элементу:

cloned_a.forEach(element => {
   someParentElement.appendChild(element);
});

типов Привета :) Если это не это, что ты искал, пожалуйста предупреди меня и я издаю, как он соответствовал.

Обнял che n.n

0
ответ дан 24.11.2019, 13:07
  • 1
    спасибо. он мне казался полезным –  hblackpro 13.10.2016, 01:49
  • 2
    Ничего che:) despu и # 232; s выбор и # 224; какой-то ответ, который был бы правильным. –  Emilio Grisolía 13.10.2016, 02:40

jQuery он решает это тебе в мгновении, без array ни совсем не.

$('a').each(function(index, el) {
    console.log($(this).attr('href'));
});

приветствие,

-1
ответ дан 24.11.2019, 13:07

Теги

Похожие вопросы