взять фрагмент HTML-кода, применить уникальный идентификатор и разместить на странице - PullRequest
0 голосов
/ 13 августа 2011

Я хочу взять фрагмент кода HTML, содержащий несколько переключателей, применить уникальный идентификатор и идентификатор метки, а затем разместить их на странице.... Как обычно, у меня проблемы с селекторами jQuery

** Обновление - я исправил вопрос с рабочим примером *

<code><!DOCTYPE html>
<html>
    <head>
    <link rel='stylesheet' href='http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.css' />
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.6.2.min.js'></script>
    <script type='text/javascript' src='http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.js'></script>
</head> 
<body>
<div data-role="page">
    <div data-role="header">
        <h1>Page Title</h1>
    </div>
    <div data-role="content">   
        <div id="placeholderA">content goes here.</div>
        <div id="placeholderB">content goes here.</div>
        <div id="placeholderD">content goes here.</div>
        <div id="placeholderC">content goes here.</div>
        <div id="placeholderE">content goes here.</div>
        <div id="placeholderF">content goes here.</div>
        <div id="placeholderG">content goes here.</div>
    </div>

<a href="#" data-icon="check" id="preShowHTML" data-iconpos="none">Show HTML</a>
<pre><div id="HTMLOut"></div>
$ (document) .ready (function () {// кнопки должны быть добавлены в несколько групп на странице var groups2 = ['A', 'B', 'C', 'D', 'E',' F ']; for (var groupLetter in groups2) {// фрагмент клона html myClone = $ (dataType); // создать уникальное имя идентификатора для первого радиоблока // (мы делаем это, потому что jquery mobile не удастсяесли дублирующиеся идентификаторы или метка для существуют ...) name = "preConfigRadio-" + groups2 [groupLetter] + "1"; // применить имя идентификатора к первому радиоблоку myClone.find ('input [name = "myRB"]:eq (0) '). attr ("id", name); myClone.find (' label [name = "myRB"]: eq (0) '). attr ("for", name); // применить идентификаторимя для второго радиоблока name = "preConfigRadio-" + groups2 [groupLetter] + "2"; myClone.find ('input [name = "myRB"]: eq (1)'). attr ("id", name); myClone.find ('label [name = "myRB"]: eq (1)'). attr ("for", name); // применить имя идентификатора к третьему радиообъекту name = "preConfigRadio- "+ groups2 [groupLetter] +" 3 ";myClone.find ('input [name = "myRB"]: eq (2)'). attr ("id", name);myClone.find ('label [name = "myRB"]: eq (2)'). attr ("for", name);// затем добавляем myClone.appendTo ("# placeholder" + groups2 [groupLetter]). trigger ('create');} / * Переключить Показать / Скрыть HTML * / $ ('# preShowHTML'). Click (function () {$ ("# HTMLOut"). Text ($ ("body"). Html ()); $ ("#HTMLOut "). Toggle (); вернуть false;});});dataType = "\ П \A \ п \B \ п \C \ n \";

1 Ответ

0 голосов
/ 13 августа 2011

Ваш синтаксис немного неправильный.

myClone.('input[@name="myRB"]')[0].attr("id", name);
  1. Вы пытаетесь вызвать функцию без имени, что невозможно
  2. (Вы можете удалить @)
  3. (Вы можете использовать :eq(n) вместо [n])

Так что вы можете вместо этого:

myClone.find('input[name="myRB"]:eq(0)').attr("id", name);

и т.д.

http://api.jquery.com/find/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...