/ / Як отримати ліве значення елемента в межах кожної функції дітей? - jquery, це, кожен, діти

Як отримати залишкове значення елемента в рамках кожної функції дітей? - jquery, це, кожен, діти

Зупиніть пресу!

Я винен ... Я намагався читати властивості, які не були встановлені на той час, коли я хотів їх прочитати!

Я використовую дітей, і кожен пробираєтьсядіти елементи DIV. Це дає мені цей об’єкт, який я використовую для переміщення елемента, щоб він став нащадком іншого елемента. Це чудово працює ... але мені також потрібно отримати доступ до вбудованого стилю "ліворуч" від елемента для переміщення ... просто не можу зрозуміти, як отримати це значення ...

$jquery("#thediv").children(".someclass").each(function () {

// move the element to another div
$jquery("#right").append($jquery(this));

});

Наведений вище код працює добре ... Але перед тим, як перемістити елемент, мені потрібно отримати вбудоване ліве значення для елемента. Я намагався:

$jquery(this).css("left");

У наведеному вище рядку мені натомість дано "auto", фактичне значення ліворуч - "0px". Що мені потрібно використати, щоб отримати ліве значення?

Я також хотів би встановити вбудований стиль порожнім перед переміщенням елемента ... Для цього я спробував:

$jquery(this).attr("style", "");

У наведеному вище рядку не випорожнено вбудований стиль, він настільки ж вихідний для елемента. Що мені потрібно використовувати, щоб очистити вбудований стиль для цього елемента?

Вбудований стиль для елементів, який представлений змінною this у циклі, має такий вбудований стиль: style = "position: absolute; left: 0px; top: 0px;"

де зліва - або "0px", або напр. "350 пікселів" і де для верху не встановлено значення "0px" для всіх елементів (але тут це не важливо) ...

Я натрапив на цю публікацію: jQuery .css ("ліворуч") повертає "авто" замість фактичного значення в Chrome

де я думав, що знайшов рішення ... $ jquery (this) .position (). left; проблема полягає в тому, що це завжди повертає мені "0", що неправильно ... оскільки кожен другий елемент повинен мати left = "350px", а не "0px"

На даний момент я маю цей код jquery безпосередньо передзакриття тегу body ... можливо, це має щось спільне з цією проблемою ... Але я вважав, що це не повинно бути причиною, оскільки стилі, до яких я намагаюся отримати доступ, все вбудовані.

Відповіді:

0 для відповіді № 1

Ви намагаєтесь отримати ширину з #thediv або з .someclass? Якщо вам потрібна ширина від #thediv, тоді вам потрібно використовувати батьківський: $(this).parent().css("left"); оскільки контекстом цього в кожному циклі є div someclass.

Див. Приклад тут: http://jsfiddle.net/thespacebean/NJ9ny/

О, і ви можете взагалі видалити вбудований CSS .removeAttr("style")